我有需要转换为json数组的arraylist才能在服务器中发布
json的格式应该是这样的:
{
p:1,
s:["a":1,"b":2],["a":2,"b":3],["a":3,"b":4]
}
我想说:
List<MyObject> objectList = new ArrayList<MyObject>();
MyObject myObject = new MyObject();
myObject .setA(1);
myObject .setB(2);
myObject .setA(2);
myObject .setB(3);
myObject .setA(3);
myObject .setB(4);
objectList.add(myObject);
我目前的代码是:
for (int i = 0; i < objectList.size(); i++) {
JSONArray ar = new JSONArray();
ar.put("a:"+objectList.get(i).getA());
ar.put("b:"+objectList.get(i).getB());
jOuter.put("s",ar);
}
但这不起作用,目前的回报是:
{"p":1,"s":["a:20","b:10.0"]}
感谢。
答案 0 :(得分:2)
不应该是这样的吗?
JSONArray ar = new JSONArray();
for (int i = 0; i < objectList.size(); i++) {
JSONObject objects = new JSONObject();
objects.put("a", objectlist.get(i).getA();
objects.put("b", objectlist.get(i).getB();
ar.put(objects);
}
jOuter.put("s",ar);
答案 1 :(得分:1)
您所需的格式无效。 我想你正在寻找像这样的东西
[dateFormater setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
此代码如下所示
{
"p": 1,
"s": [
{
"a": 1,
"b": 2
},
{
"a": 2,
"b": 3
},
{
"a": 3,
"b": 4
}
]
}
答案 2 :(得分:1)
请检查以下代码:这将进行正确的格式化:
JSONObject jo = new JSONObject();
try {
jo.put("p", "1");
JSONArray jarr = new JSONArray();
for (MyObject listItem : objectList) {
JSONObject inner = new JSONObject();
inner.put("a", listItem.getA());
inner.put("b", listItem.getB());
jarr.put(inner);
}
jo.put("s", jarr);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
它将返回如下输出:
{
"p":1,
"s":[{"a":1,"b":2},{"a":2,"b":3},{"a":3,"b":4}]
}
这是一个合适的json,我认为你需要它!如果我错了,请告诉我。
答案 3 :(得分:1)
您的forms|filter: {'id': component.form.id}
条目实际上是{
forms: [
{
id: 1,
name: 'form 1',
fields: [
{
displayName: 'name 1',
id: 1
},
{
displayName: 'name 2',
id: 2
},
{
displayName: 'name 3',
id: 3
}
}
},
{
id: 1,
name: 'form 1'
fields: [
{
displayName: 'name 1',
id: 1
},
{
displayName: 'name 2',
id: 2
},
{
displayName: 'name 3',
id: 3
}
]
}
]
}
,而您的s
只是一个属性。我在这里使用Gson,但您可以轻松地将其应用于您使用的任何库。所以你可以做到以下几点:
JsonArray
输出结果为:
p