我想在jsonArray和jsonAraay包括在其他jsoObject添加的JSONObject [英] I want to add jsonobject in jsonArray and that jsonAraay included in other jsoObject

查看:119
本文介绍了我想在jsonArray和jsonAraay包括在其他jsoObject添加的JSONObject的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在以下构建的Java样的结构,并把它作为回应:

  VAR ABC = {行动:删除,
       数据表:
          {将把userid:userid0,用户名:NAME0},
          {将把userid:userid1,用户名:名1},
          {将把userid:userid2,用户名:NAME2},
          {将把userid:userid3,用户名:NAME3}
                ]
    ,
       MSGTYPE:成功};

我做的:

  JSONArray jsonArray =新JSONArray();为(环){
    JSONObject的jsonObj =新的JSONObject();
    jsonObj.put(srcOfPhoto,srcOfPhoto);
    jsonObj.put(用户名,姓名+计数);
    jsonObj.put(用户id,将把userid+计数);    jsonArray。新增(jsonObj.toJSONString());
}地图paramMap =新的HashMap();paramMap.put(行动,删除);paramMap.put(数据表,JSONArray),其中;paramMap.put(Constant.MSG_TYPE,Constant.SUCCESS);getJSONMessage(paramMap);

和herer上述功能是转换成paramMap JSON字符串,如:

 公共静态字符串getJSONMessage(地图<字符串,字符串> paramMap){
    如果(paramMap =空&放大器;!&放大器; paramMap.size()大于0)
        返回JSONObject.toJSONString(paramMap);
    其他
        返回;
}

但它不创造合适的结构,任何人可以帮助我在这?

这里是我得到的输出:

{\"action\":\"Remove\",\"datatable\":[\"{\\\"userid\\\":\\\"userid0\\\",\\\"srcOfPhoto\\\":\\\"users\\/JMMBGTCHG.jpg\\\",\\\"username\\\":\\\"name0\\\"}\"],\"msgType\":\"success\"}

这是不被解析的JavaScript。

  VAR JSON =的eval('('+ respText +')');
警报(内容>>中+ json.datatable);
警报(contents.datatable [0]≥>>中+ json.datatable [0] .username);

最后警报显示不确定的。


哦对不起,我忘了最后一行粘贴,这里是最后一行:

  getJSONMessage(paramMap);

和上面的函数被转换成paramMap JSON字符串:

 公共静态字符串getJSONMessage(地图<字符串,字符串> paramMap){
    如果(paramMap =空&放大器;!&放大器; paramMap.size()大于0)
        返回JSONObject.toJSONString(paramMap);
    其他
        返回;
}


解决方案

  JSONArray jsonArray =新JSONArray();为(环){
    JSONObject的jsonObj =新的JSONObject();
    jsonObj.put(srcOfPhoto,srcOfPhoto);
    jsonObj.put(用户名,姓名+计数);
    jsonObj.put(用户id,将把userid+计数);    jsonArray.put(jsonObj.valueToString());
}JSONObject的参数=新的JSONObject();parameters.put(行动,删除);parameters.put(数据表,JSONArray),其中;parameters.put(Constant.MSG_TYPE,Constant.SUCCESS);

你为什么会被使用的Hashmap如果你想要的是把它变成一个JSONObject?

编辑:按<一个href=\"http://www.json.org/javadoc/org/json/JSONArray.html\">http://www.json.org/javadoc/org/json/JSONArray.html

I need below kind of structure constructed in java and send it as response :

var abc = {"action":"Remove",
       "datatable":[
          {"userid":"userid0","username":"name0"},
          {"userid":"userid1","username":"name1"},
          {"userid":"userid2","username":"name2"},
          {"userid":"userid3","username":"name3"}
                ]
    ,
       "msgType":"success"};

I am doing:

JSONArray jsonArray = new JSONArray();

for (loop) {
    JSONObject jsonObj= new JSONObject();
    jsonObj.put("srcOfPhoto", srcOfPhoto);
    jsonObj.put("username", "name"+count);
    jsonObj.put("userid", "userid"+count);

    jsonArray .add(jsonObj.toJSONString());
}

Map paramMap = new HashMap();

paramMap.put("action", "remove");

paramMap.put("datatable", jsonArray );

paramMap.put(Constant.MSG_TYPE , Constant.SUCCESS);

getJSONMessage(paramMap);

and herer above function is converting paramMap into json string like:

public static String getJSONMessage(Map<String, String> paramMap){
    if(paramMap != null && paramMap.size() > 0)
        return JSONObject.toJSONString(paramMap);
    else
        return "";
}

but it is not creating the right structure, can anybody help me in this?

here is what I am getting output:

{"action":"Remove","datatable":["{\"userid\":\"userid0\",\"srcOfPhoto\":\"users\/JMMBGTCHG.jpg\",\"username\":\"name0\"}"],"msgType":"success"}

which is not being parsed in javascript.

var json = eval('(' + respText+')');
alert("contents>>"+json.datatable);
alert("contents.datatable[0]>>>"+json.datatable[0].username);

last alert showing undefined.


ohh sorry I forgot to paste last line , here is the last line:

getJSONMessage(paramMap);

and above function is converting paramMap into json string:

public static String getJSONMessage(Map<String, String> paramMap){
    if(paramMap != null && paramMap.size() > 0)
        return JSONObject.toJSONString(paramMap);
    else
        return "";
}

解决方案

JSONArray jsonArray = new JSONArray();

for (loop) {
    JSONObject jsonObj= new JSONObject();
    jsonObj.put("srcOfPhoto", srcOfPhoto);
    jsonObj.put("username", "name"+count);
    jsonObj.put("userid", "userid"+count);

    jsonArray.put(jsonObj.valueToString());
}

JSONObject parameters = new JSONObject();

parameters.put("action", "remove");

parameters.put("datatable", jsonArray );

parameters.put(Constant.MSG_TYPE , Constant.SUCCESS);

Why were you using an Hashmap if what you wanted was to put it into a JSONObject?

EDIT: As per http://www.json.org/javadoc/org/json/JSONArray.html

这篇关于我想在jsonArray和jsonAraay包括在其他jsoObject添加的JSONObject的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆