将数组列表对象转换为jsonarray

时间:2015-09-29 08:45:22

标签: java android json

我有需要转换为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"]}

感谢。

4 个答案:

答案 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