Java Simple JSON не заменяет значение атрибута - PullRequest
0 голосов
/ 23 сентября 2019

В качестве приведенных выше состояний жизни я пытаюсь заменить значение для " name " на " abc ", но это, похоже, не перезаписывает его, так как это то же значение после заменыэто используя Простой JSON Java-код.

Это мой java-код:

    String jsonString = 
    "{"
        + "\"data\":"
        + "["
            + "{"
                + "\"jazz\":\"black\","
                + "\"name\":\"white\","
                + "\"given\":\"red\","
                + "\"sam\":\"blue\","
                + "\"mail\":\"yellow\","
                + "\"member\":\"green\","
                + "\"department\":\"green\","
                + "\"title\":\"green\""
            + "}"
        + "]"
    + "}";
    JSONParser parser = new JSONParser();
    JSONObject jsonObj = (JSONObject) parser.parse(jsonString);
    JSONObject newJSON = new JSONObject();

    jsonObj.remove("name");
    jsonObj.put("name", "abc");

Как я уже сказал, приведенный выше код, похоже, ничего не делает для атрибута " name ", который уже находится в jsonструктура.Вывод для вышеупомянутого выглядит следующим образом:

{
    "data": [
        {
            "given": "red",
            "mail": "yellow",
            "jazz": "black",
            "name": "white",
            "member": "green",
            "department": "green",
            "title": "green",
            "sam": "blue"
        }
    ],
    "name": "abc"
}

Как должен выглядеть вывод:

{
    "data": [
        {
            "given": "red",
            "mail": "yellow",
            "jazz": "black",
            "name": "abc",
            "member": "green",
            "department": "green",
            "title": "green",
            "sam": "blue"
        }
    ]
}

Есть идеи, почему его не изменить?

ОБНОВЛЕНИЕ 1

enter image description here

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

это сработало для меня:

JSONArray jsonArray = (JSONArray)jsonObj.get("data");
    JSONObject jsonObject = ((JSONObject)(jsonArray).get(0));
    jsonObject.put("name", "abc");
    System.out.println(jsonObj.toJSONString());
1 голос
/ 23 сентября 2019

У вас есть объект внутри вашего объекта json. Вам необходимо получить внутренний объект данных и изменить его. JsonObj.get ("data"). Put ("name", "abc")

...