我想将JSONObject添加到JSONArray,并将JSONArray添加到其他JSONObject中

Ajk*_*jka 10 arrays json

我需要在java中构造的一种结构,并将其作为响应发送:

var abc = {"action":"Remove",
       "datatable":[
          {"userid":"userid0","username":"name0"},
          {"userid":"userid1","username":"name1"},
          {"userid":"userid2","username":"name2"},
          {"userid":"userid3","username":"name3"}
                ]
    ,
       "msgType":"success"};
Run Code Online (Sandbox Code Playgroud)

我在做:

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);
Run Code Online (Sandbox Code Playgroud)

以上函数将paramMap转换为json字符串,如:

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

但它没有创造出正确的结构,任何人都可以帮助我吗?

这是我得到的输出:

{ "动作": "删除", "数据表":[ "{\" 用户ID\":\" userid0 \",\ "srcOfPhoto \":\ "用户\ /JMMBGTCHG.jpg \",\ "用户名\" :\ "NAME0 \"} "]," 信息类型 ":" 成功"}

这是没有在JavaScript中解析.

{"action":"Remove","datatable":[{\"userid\":\"userid0\",\"srcOfPhoto\":\"users\\\/JMMBGTCHG.jpg\",\"username\":\"name0\"}"],"msgType":"success"}
Run Code Online (Sandbox Code Playgroud)

最后一次警报显示未定义.


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

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

以上函数将paramMap转换为json字符串:

getJSONMessage(paramMap);
Run Code Online (Sandbox Code Playgroud)

Gon*_*ira 24

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);
Run Code Online (Sandbox Code Playgroud)

如果您想要将其放入JSONObject中,为什么要使用Hashmap?

编辑:根据http://www.json.org/javadoc/org/json/JSONArray.html

EDIT2:在使用的JSONObject方法上,我遵循以下代码:https://github.com/stleary/JSON-java/blob/master/JSONObject.java#L2327,该方法不被弃用.

我们存储的是JSONObject的字符串表示,而不是JSONObject本身

  • 没有`add(jsonObj)`,但是`put(jsonObj)`是可能的(转换为JSONString似乎也没有必要) (3认同)