簡體   English   中英

Java JsonObject數組值為key

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM