#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);