我正在调用返回 JSON 的 Web 服务。在该 JSON 中,我有一个包含 URL 的属性。但该 URL 中的冒号 (:) 使 Gson 抛出 gson.stream.MalformedJsonException 错误。我知道这些键和值应该被包装
Web 服务返回的 JSON:
{
ID=15;
Code=ZPFgNr;
UserName=https://www.google.com/accounts/o8/id?id=xxxxxx; //<--problem
FirstName=Joe
}
我的Java:
resultData=((SoapObject) result).getProperty(0).toString();
User response = gson.fromJson(resultData, User.class);
我知道这些键和值应该用双引号引起来。但它们不是,这似乎就是问题所在。
所以我的问题是:
我应该在以某种方式反序列化之前对这个 JSON 进行编码吗?如果是这样,怎么办?
或
我应该在 https:
上进行查找和替换并转义冒号吗?如果是这样,我将如何转义冒号?
最佳答案
JSON 使用逗号分隔属性,使用冒号分隔属性名称和属性值,并使用双引号将名称和值括起来。这不是有效的 JSON。
这是有效的 JSON:
{
"ID" : "15",
"Code" : "ZPFgNr",
"UserName" : "https://www.google.com/accounts/o8/id?id=xxxxxx",
"FirstName" : "Joe"
}
关于java - 冒号(:) within JSON data using Gson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083365/