Вопрос по java, json – Значение массива Java JsonObject для ключа

3

Я новичок в Java, так что это немного сбивает с толку

Я хочу получить строку в формате JSON

Результат, который я хочу, это

{ "user": [ "name", "lamis" ] }

Что я сейчас делаю, так это:

JSONObject json = new JSONObject();         
json.put("name", "Lamis");
System.out.println(json.toString());

И я получаю этот результат

{"name":"Lamis"}

Я пытался это, но это не сработало json.put («пользователь», json.put («имя», «Ламис»));

Я знаю, я не знаю, как правильно расположить это .. но это дало странные результаты Lamis
Ничего в вашем коде не упоминаетuser так почему вы ожидаете это в выводе? Joachim Sauer

Ваш Ответ

3   ответа
12

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

However «неправильно» результат, который вы показали, был бы более естественным отображением "пользователя" сname & Quot; Ламис & Quot; чем «правильный» результат.

Why Как вы думаете, "правильно"? результат лучше?

Error: User Rate Limit Exceeded Lamis
Error: User Rate Limit Exceeded{"name":"Lamis", "age":23}Error: User Rate Limit ExceededshouldError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Lamis
Error: User Rate Limit Exceeded Lamis
Error: User Rate Limit Exceeded Lamis
7

писка.

   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" ] }
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());
    }
}

Похожие вопросы