【发布时间】:2014-11-06 09:47:18
【问题描述】:
我有一个JSONArray,看起来像这样:
如何将其转换为字符串?
如果我尝试:
json.toString();
字符串是:
["package.package.ChecklistModels.ChecklistAnswer@405dddd8","package.package.ChecklistModels.ChecklistAnswer@405ddf48","package.package.ChecklistModels.ChecklistAnswer@405de070","package.package.ChecklistModels.ChecklistAnswer@405de198","package.package.ChecklistModels.ChecklistAnswer@405de2c0","package.package.ChecklistModels.ChecklistAnswer@405de3e8","package.package.ChecklistModels.ChecklistAnswer@405de510"]
但我想要这样的东西:
{
"json":
"values": [
{
"answer": "true",
"remark":"",
"questionId": "0"
"checklistId": "2"
},
{
"answer": "true",
"remark":"",
"questionId": "0"
"checklistId": "2"
}
]
}
编辑:
这是我如何制作 json 数组的片段:
if(cb.isChecked() || !text.getText().toString().equals("")){
ChecklistAnswer answer = new ChecklistAnswer(questions.get(id).id, 2, cb.isChecked(), text.getText().toString());
answers.add(answer);
}
}
JSONArray json = new JSONArray(answers);
String jsonString = json.toString();
【问题讨论】:
-
显示一些你的代码的sn-p
-
它按预期工作...您只需将
ChecklistAnswer对象放入数组中...而不是JSONObject...ChecklistAnswer.toString()返回 "xx.xx.xx.ChecklistAnswer@XXX" 。 .. 所以要么重写 ChecklistAnswer.toString 方法以返回 json 字符串,要么创建一个函数将 ChecklistAnswer 转换为 JSOObject -
显示用于json解析的代码
-
我添加了一些代码@CapDroid
-
而不是
answers.add(answer);使用answers.add(answer.toJSONObject());(是的,你必须自己在ChecklistAnswer中编写toJSONObject方法 - 这应该很简单 - 就像将所有 ChecklistAnswer 的属性放入新的JSON对象)
标签: java android arrays json string