我是java的新手,所以这有点令人困惑
我想获得json格式的字符串
我想要的结果是
{ "user": [ "name", "lamis" ] }
我目前正在做的是:
JSONObject json = new JSONObject();
json.put("name", "Lamis");
System.out.println(json.toString());
我得到了这个结果
{"name":"Lamis"}
我尝试了这个,但它没有用 json.put(“user”,json.put(“name”,“Lamis”));
答案 0 :(得分:13)
试试这个:
JSONObject json = new JSONObject();
json.put("user", new JSONArray(new Object[] { "name", "Lamis"} ));
System.out.println(json.toString());
然而"错误"你展示的结果将是一个更自然的映射"用户的名称" lamis"而不是"正确"结果
为什么你认为"正确"结果更好?
答案 1 :(得分:8)
另一种方法是使用JSONArray来呈现列表
JSONArray arr = new JSONArray();
arr.put("name");
arr.put("lamis");
JSONObject json = new JSONObject();
json.put("user", arr);
System.out.println(json); //{ "user": [ "name", "lamis" ] }
答案 2 :(得分:1)
你所追求的可能与你认为你需要的不同;
你应该有一个单独的'User'对象来保存所有属性,如姓名,年龄等。 然后该对象应该有一个方法,为您提供对象的Json表示...
您可以查看以下代码;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
public class User {
String name;
Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public JSONObject toJson() {
try {
JSONObject json = new JSONObject();
json.put("name", name);
json.put("age", age);
return json;
} catch (JSONException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
User lamis = new User("lamis", 23);
System.out.println(lamis.toJson());
}
}