#java #json
#java #json
Вопрос:
У меня есть строка значений, разделенных запятой и «=». Мне нужно преобразовать это в правильный формат json:
value = value.replace("=", ":");
String [] arrayStr=value.split(",");
JsonObjectBuilder builder = Json.createObjectBuilder();
String key = null;
for (String s: arrayStr){
if(key == null) {
key = s;
} else {
builder.add(key, s);
key = null;
}
}
JsonObject val = builder.build();
Вот содержимое, которое у меня есть, и как я хотел бы его преобразовать:
[{Locale=en, Address={House=138, Street=Whitefield Road, CityDistrict=Bangalore, City=Bangalore, District=Bangalore, RegionCode=KA, Region=Whitefield, CountryCode=IND, Country=India, PostalCode=560066}}, {Locale=de, Address={House=138, Street=Whitefield Road, CityDistrict=Bangalore, City=Bangalore, District=Bangalore, RegionCode=KA, Region=Whitefield, CountryCode=IND, Country=India, PostalCode=560066}}]
[{"Locale":"en","Address":{"House":"138","Street":"Whitefield Road","CityDistrict":"Bangalore","City":"Bangalore","District":"Bangalore","RegionCode":"KA","Region":"Whitefield","CountryCode":"IND","Country":"India","PostalCode":"560066"}},{"Locale":"de","Address":{"House":"138","Street":"Whitefield Road","CityDistrict":"Bangalore","City":"Bangalore","District":"Bangalore","RegionCode":"KA","Region":"Whitefield","CountryCode":"IND","Country":"India","PostalCode":"560066"}}]
Комментарии:
1. может быть, JsonParser parser = new JsonParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); ?
2. Исключение в потоке «main» org.jooq.tools.json. Исключение ParseException: неожиданный символ (L) в позиции 2. в org.jooq.tools.json. Yylex.yylex(Yylex.java: 609) в org.jooq.tools.json.JsonParser.nextToken(JsonParser.java:263) в org.jooq.tools.json.JsonParser.parse(JsonParser.java:112) в org.jooq.tools.json.JsonParser.parse(JsonParser.java:75) в org. jooq.tools.json.JsonParser.parse(JsonParser.java:69)
3. Вы показываете не весь код. Проблема в коде, который вы решили не показывать.
4. Единственное, чего не хватает в приведенном выше коде, это строковое значение = «[{Locale=en, Address={House=138, Street=Whitefield Road, CityDistrict=Бангалор, City=Бангалор, District=Бангалор, regionCode=KA, Region=Whitefield, CountryCode=IND, Country= Индия, PostalCode = 560066}}, {Locale=de, Address={House=138, Street=Whitefield Road, CityDistrict=Бангалор, City=Бангалор, Округ =Бангалор, Код региона = KA, Регион = Whitefield, Код страны = IND, Страна = Индия, Почтовый индекс = 560066}}] «;
5. Просто отладьте и посмотрите, что вы добавляете в конструктор в качестве ключей. Первый ключ — «[{Locale:en». Я не уверен, является ли это допустимым ключом. Сообщение об ошибке указывает, что это не так.
Ответ №1:
String value = arrayObject.get(VALUE).toString();
JSONArray array = new JSONArray(value);
Комментарии:
1. Привет, не могли бы вы, пожалуйста, объяснить, что такое
arrayObject
?