Вывести строку JSON с предыдущим форматом в JAVA

#java #json

#java #json

Вопрос:

У меня есть этот плоский файл JSON, и мне нужно изменить значение clientCode

 {
  "clientNumber": "Test",
  "clientCode": "12345",
  "clientReference": "JSON Testing",
  "billingCode":"90code",
  "clienttructure": "new, test, Java",
  "site": "sampleStore",
  "siteDestination": "EU",
}
  

Я попытался изменить значение clientCode и проверить возврат метода.

Я использую Java

 String jsonName = "clientCode ";
String jsonValue = "new Value";
String JSONSource = path;


public String put(String jsonName, String jsonValue, String JSONSource) {
        String jsonString = null;

        try {
            Object obj = parser.parse(new FileReader(JSONSource));
            org.json.simple.JSONObject jsonObject = (org.json.simple.JSONObject) obj;

            jsonObject.put(jsonName, jsonValue);

            jsonString = jsonObject.toJSONString();


        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return jsonString;
    }
  

Фактический вывод:

 { "billingCode":"90code", "clientCode": "new Value","clientNumber": "Test","clientReference": "JSON Testing",.....}
  

Ожидаемый результат должен быть :

 {
  "clientNumber": "Test",
  "clientCode": "new Value",
  "clientReference": "JSON Testing",
  "billingCode":"90code",
  "clienttructure": "new, test, Java",
  "site": "sampleStore",
  "siteDestination": "EU",
}
  

Комментарии:

1. Есть ли причина, по которой вам нужен вывод в определенном порядке?

2. Вы не упомянули API, который используете.

3. Дополняя комментарий @brandonx, следующий за RFC 7159 , * объект представляет собой неупорядоченную коллекцию из нуля или более значений / пар *, поэтому я не знаю, действительно ли ваше требование имеет смысл

4. Если вам действительно нужно сохранить порядок и форматирование, замена строки с использованием регулярного выражения также может быть вариантом (хотя на самом деле это не рекомендуемый способ обработки JSON).

5. @all просто хочу сделать форматирование выходных данных таким образом, чтобы другой разработчик в нашей команде мог легко прочитать файл json, также он будет использоваться для нашего ведения журнала.

Ответ №1:

Попробуйте это…

 JSONObject jsonobject =  new JSONObject(response);
jsonobject .remove("clientCode");

JSONObject updateValue = new JSONObject(updateValue);
String UpdatedValue = updateValue.getString("clientCode");
jsonobject .put("clientCode", UpdatedValue);