[英]Java JsonObject array value to key
我是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”));
嘗試這個:
JSONObject json = new JSONObject();
json.put("user", new JSONArray(new Object[] { "name", "Lamis"} ));
System.out.println(json.toString());
然而 ,你所展示的“錯誤”結果將是“有一個名為 ”lamis“的用戶比”正確“結果更自然的映射。
為什么你認為“正確”的結果更好?
另一種方法是使用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" ] }
你所追求的可能與你認為需要的不同;
你應該有一個單獨的'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());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.