如何 consume/deserialize .Net WCF 服务 JSON 在 Java 中响应
How to consume/deserialize .Net WCF service JSON response in Java
我在 consuming/deserializing WCF .NET JSON 响应 Java 时遇到问题。 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响应格式有问题吗?感谢任何形式的帮助,提前致谢。
我不确定您为什么会收到该回复 - 它无效 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.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();
}
我在 consuming/deserializing WCF .NET JSON 响应 Java 时遇到问题。 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响应格式有问题吗?感谢任何形式的帮助,提前致谢。
我不确定您为什么会收到该回复 - 它无效 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.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();
}