【发布时间】:2011-09-21 10:02:51
【问题描述】:
我需要以下用 java 构建的结构并将其作为响应发送:
var abc = {
"action": "Remove",
"datatable": [
{ "userid": "userid0", "username": "name0" },
{ "userid": "userid1", "username": "name1" },
{ "userid": "userid2", "username": "name2" },
{ "userid": "userid3", "username": "name3" }
],
"msgType": "success"
};
我在做:
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);
上面的函数是将 paramMap 转换为 json 字符串,如:
public static String getJSONMessage(Map<String, String> paramMap) {
if (paramMap != null && paramMap.size() > 0)
return JSONObject.toJSONString(paramMap);
else
return "";
}
但它没有创建正确的结构,有人可以帮助我吗?
这是我得到的输出:
{"action":"Remove","datatable":[{\"userid\":\"userid0\",\"srcOfPhoto\":\"users\\\/JMMBGTCHG.jpg\",\"username\":\"name0\"}"],"msgType":"success"}
没有被 javascript 解析。
var json = eval('(' + respText+')');
alert("contents>>"+json.datatable);
alert("contents.datatable[0]>>>"+json.datatable[0].username);
最后一个警报显示未定义。
对不起,我忘了贴最后一行,这是最后一行:
getJSONMessage(paramMap);
上面的函数是将paramMap转换成json字符串:
public static String getJSONMessage(Map<String, String> paramMap){
if(paramMap != null && paramMap.size() > 0)
return JSONObject.toJSONString(paramMap);
else
return "";
}
【问题讨论】:
-
我已将您的两个帐户合并在一起。 Please read this Faq entry about cookie-based accounts. 另外,StackOverflow 不是论坛;如果您有新问题,请提出新问题。如果您想在问题中包含更多信息,请edit it。如果您想与其中一位已回答的人互动,可以给他们留言。