如何在JSON对象中添加字符串数组?

时间:2013-03-31 12:59:41

标签: android json arrays

我正在尝试在android上创建这个JSON对象。我被困在如何在对象中添加字符串数组。

A = {
    "class" : "4" ,
    "name" : ["john", "mat", "jason", "matthew"]
    }

这是我写的代码:

import org.json.JSONObject;

JSONObject school = new JSONObject();

school.put("class","4");
school.put("name", ["john", "mat", "jason", "matthew"] );

但是最后一行给出了错误。过去了吗?

5 个答案:

答案 0 :(得分:46)

汤姆提出的不恰当的方法。优化的代码将是:

ArrayList<String> list = new ArrayList<String>();
list.add("john");
list.add("mat");
list.add("jason");
list.add("matthew");

JSONObject school = new JSONObject();

school.put("class","4");
school.put("name", new JSONArray(list));

答案 1 :(得分:7)

您收到错误,因为您的最后一行是无效的Java。

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]"));

答案 2 :(得分:3)

因此你会收到错误。

school.put("name", ["john", "mat", "jason", "matthew"] );
                   ^                                 ^   

这样做。

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]"));

答案 3 :(得分:2)

@ bhavindesai,答案很棒。这是解决此问题的另一种方法。您可以使用Json Simple库来完成它。这是gradle

compile 'com.googlecode.json-simple:json-simple:1.1'

以下是示例代码:

org.json.simple.JSONObject jsonObject=new org.json.simple.JSONObject();
jsonObject.put("Object","String Object");

ArrayList<String> list = new ArrayList<String>();
            list.add("john");
            list.add("mat");
            list.add("jason");
            list.add("matthew");

            jsonObject.put("List",list);

那就是它。 :)

答案 4 :(得分:0)

bhavindesai指出,

ArrayList<String> list = new ArrayList<String>();
list.add("john");
list.add("mat");
list.add("jason");
list.add("matthew");

JSONObject school = new JSONObject();

school.put("class","4");
school.put("name", new JSONArray(list));

是一种更好,更清洁的方法。

要导入正确的软件包,您应该编写:

import org.json.simple.JSONArray;

在Java类之上。

如果您正在使用Maven,请添加

 <dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1</version>  
</dependency>

到pom.xml。然后,下载源和依赖项并重新导入。尽管使用了注释,但我还是回答了,因为注释使代码缩进了。