Как преобразовать отображение строк в строку JSON в Java?

#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 }