【发布时间】:2018-03-14 02:51:36
【问题描述】:
这是一个使用 Jersey 编写的简单 Web 服务
@GET
@Produces(MediaType.APPLICATION_JSON)
public Object interpretationJson() {
String o = "a simple string";
return o;
}
对此的回应是:
HTTP/1.1 200
Content-Type: application/json
Content-Length: 15
Date: Mon, 02 Oct 2017 23:18:14 GMT
a simple string
响应正文中的字符串不应该被引用吗?我不相信这是有效的 JSON。响应不应该是:
HTTP/1.1 200
Content-Type: application/json
Content-Length: 15
Date: Mon, 02 Oct 2017 23:18:14 GMT
"a simple string"
这让我有点困惑。我原本以为问题出在客户端,但现在我认为问题是从 Jersey 返回的字符串不是有效的 JSON - C# Parsing json that may have simple types
【问题讨论】:
-
为什么?要获得带引号的字符串,请转义并添加另一组引号。如果您将返回一个正确的 json,而不仅仅是字符串,那么字段的值将被正确引用
-
序列化程序应该正确序列化返回的对象。不带引号的字符串不是有效的 JSON。这是一个简化的例子。在实际代码中,对象“o”有时是一个简单的字符串,但有时是一个更复杂的对象。