3

我是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"));

4

3 回答 3

13

试试这个:

JSONObject json = new JSONObject();         
json.put("user", new JSONArray(new Object[] { "name", "Lamis"} ));
System.out.println(json.toString());

但是,您显示的“错误”结果将是“有一个名为“lamis”的用户比“正确”结果更自然的映射。

为什么你认为“正确”的结果更好?

于 2012-05-22T14:34:26.050 回答
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" ] }
于 2012-05-22T14:56:19.000 回答
1

可能您所追求的与您认为需要的不同;

您应该有一个单独的“用户”对象来保存所有属性,如姓名、年龄等。然后该对象应该有一个方法为您提供对象的 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());
    }
}
于 2012-05-22T14:43:27.343 回答