我正在尝试在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"] );
但是最后一行给出了错误。过去了吗?
答案 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。然后,下载源和依赖项并重新导入。尽管使用了注释,但我还是回答了,因为注释使代码缩进了。