在Java中使用/反序列化WCF .NET JSON响应时遇到问题。 JSON响应采用以下格式。
{"d":"[
{\"ID\":123,\"Company\":\"Microsoft\",\"Country\":\"USA\",
\"website\":\"http:\/\/www.microsoft.com\",
\"FirstName\":\"john\",\"Email\":\"abc@gmail.com\"},
{\"ID\":124,\"Company\":\"Google\",\"Country\":\"USA\",
\"website\":\"http:\/\/www.google.com\",
\"FirstName\":\"john\",\"Email\":\"abc@gmail.com\"},
{\"ID\":125,\"Company\":\"Apple\",\"Country\":\"USA\",
\"website\":\"http:\/\/www.abc.com\",
\"FirstName\":\"john\",\"Email\":\"abc@gmail.com\"}
]"}
在Java代码方面,我遇到了解决这个json响应以解决我的对象及其相应属性的问题。
这是我目前用于反序列化json响应的java代码。
String companyTitle = "";
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(jsonResponseString);
if (element.isJsonObject()) {
JsonArray companies = element.getAsJsonArray();
JsonObject company = companies.get(0).getAsJsonObject();
companyTitle = company .get("Company").getAsString();
}
JSON响应格式有问题吗?任何形式的帮助都表示赞赏,提前谢谢。
答案 0 :(得分:1)
我不确定你为什么得到那个回复 - 它不是有效的json。它有两个问题
如果没有你发布你得到的实际错误(提示:即使堆栈溢出很强大,我们还没有开发出阅读思维的能力),很难知道实际问题是什么。
答案 1 :(得分:1)
{"d":[
{"ID":123,"Company":"Microsoft","Country":"USA",
"website":"http://www.microsoft.com",
"FirstName":"john","Email":"abc@gmail.com"},
{"ID":124,"Company":"Google","Country":"USA",
"website":"http://www.google.com",
"FirstName":"john","Email":"abc@gmail.com"},
{"ID":125,"Company":"Apple","Country":"USA",
"website":"http://www.aabc.com",
"FirstName":"john","Email":"abc@gmail.com"}
]}
你的代码就像这样:
String companyTitle = "";
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(jsonResponseString);
JsonObject object = element.getAsJsonObject();
if (object.isJsonObject()) {
JsonArray companies = object.getAsJsonArray("d");
JsonObject company = companies.get(0).getAsJsonObject();
companyTitle = company .get("Company").getAsString();
}