Java中使用gson解析json字符串的问题

下面这种json字符串要反序列化为一个对象


{
  "name":"name",
  "profiles":[
    {
      "code":"code1",
      "name":"name1"
    }],
  "age":18,
  "desc":"{"key2":"value2","key3":"value3"}"
}

desc是一个json字符串,使用gson反序列化会抛出异常


Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 83 path $.desc

怎么样指定把desc字段解析为json对象或者只解析为一个正常的字符串


Map<String, Object> map = new GsonBuilder().registerTypeAdapter(new TypeToken<Map<String, Object>>()
    {}.getType(), new GsonTypeAdapter()).create().fromJson(message, new TypeToken<Map<String, Object>>() {}.getType());

试试这个吧

试试desc字段里面的双引号前面加转义\

{
    "name": "name",
    "profiles": [
        {
            "code": "code1",
            "name": "name1"
        }
    ],
    "age": 18,
    "desc": "{\"key2\":\"value2\",\"key3\":\"value3\"}"
}

字符串格式不正确哦