如何使用GSON创建JSONArray

时间:2014-02-25 09:36:19

标签: android json gson arrays

您好,在我的项目中,我需要使用GSON类

创建一个JSONArray类型
    {
  "message": [
    "msg 1",
    "msg 2",
    "msg 3"
  ],
  "asec": [
    "asec 1",
    "asec 2",
    "asec 3"
  ]
}

我知道如何在GSON中创建具有键值的JSONArray,例如:

  [
  {
    "message1": "msg 1",
    "asc": "asc 1"
  },
  {
    "message1": "msg 2",
    "asc": "asc 2"
  },
  {
    "message1": "msg 3",
    "asc": "asc 3"
  }
]

但我不知道如何创建JSONArray类型可以任何人帮助我

3 个答案:

答案 0 :(得分:3)

班级:

public class JsonStructure{
    public String[] message;
    public String[] asec;
}

使用它:

JsonStructure json = new JsonStructure();
json.message = new String[]{"msg 1", "msg 2", "msg 3"};
json.asec = new String[]{"asec 1", "asec 2", "asec 3"};
Gson gson = new Gson();
String output = gson.toJson(json);
//convert from string
JsonStructure fromString = gson.fromJson(output, JsonStructure.class);

有关Google gson的更多详情,请查看https://sites.google.com/site/gson/gson-user-guide

答案 1 :(得分:1)

public class ArrayBean {
    ArrayList<String> message = new ArrayList<String>();
    ArrayList<String> asec = new ArrayList<String>();

}

在arraybean之上创建bean类,然后你可以在主类上添加值并打印输出。

   Gson gson = new Gson();
   ArrayBean arrayBean = new ArrayBean();

        arrayBean.message.add("msg 1");
        arrayBean.message.add("msg 2");
        arrayBean.message.add("msg 3");

        arrayBean.asec.add("asec 1");
        arrayBean.asec.add("asec 2");
        arrayBean.asec.add("asec 3");


        Log.d("rvg",""+gson.toJson(arrayBean));

答案 2 :(得分:1)

尝试以下代码来创建所需的JsonObject。

String[] msgArray = new String[]{"msg 1", "msg 2", "msg 3"};
String[] asecArray = new String[]{"asec 1", "asec 2", "asec 3"};

Gson gson = new Gson();
JsonObject obj = new JsonObject(); //Json Object

obj.add("message", gson.toJsonTree(msgArray));
obj.add("asec", gson.toJsonTree(asecArray));

String jsonString = gson.toJson(obj);  //Json String 

有关详细信息,请参阅Gson documentation