#json #jackson #gson
#json #джексон #gson
Вопрос:
У меня возникла проблема, связанная с преобразованием строковой карты в строку json с приведенным ниже примером
public class Demo {
public static void main(String[] args) throws JsonProcessingException {
String stringRequest = "{A=12, B=23}";
System.out.println(new Gson().toJson(stringRequest));
}
}
```
OUTPUT: "{Au003d12, Bu003d23}"
Please you help me how can I map this to json string.
Ответ №1:
Немного неясно, в чем на самом деле заключается ваша проблема, но главное в вашем примере заключается в том, что вы сериализуете строковый объект в JSON. Вот почему вы получаете такой вывод, это не представление a Map
, а a String
.
Однако с помощью этой строки вы можете легко создать Map
, которую затем можно сериализовать. Не говорю, что в этом есть какой-то смысл, если вы не хотите провести некоторую очистку или что-то в этом роде, но в любом случае:
// Check first which kind of types are keys amp; values
// keys are always Strings and here it seems that values can be Integers
Type type = new TypeToken<Map<String, Integer>>(){}.getType();
// Create the actual map from that string
Map<String, Integer> map = getGson().fromJson(stringRequest, type);
// Serialize the map to the console (added pretty printing here)
System.out.println(new Gson().toJson(map));
и вы можете видеть:
{ «A»: 12, «B»: 23 }