下面这种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\"}"
}
字符串格式不正确哦