【问题标题】:is "HelloWorld" a valid json response“HelloWorld”是一个有效的 json 响应吗
【发布时间】:2012-03-15 20:38:51
【问题描述】:

这可能是有史以来最基本的 json 问题。我正在创建一个 WCF REST 服务并有一个只返回一个字符串的 HelloWorld 测试函数。我正在 fiddler 中测试服务,我得到的响应体是:

"HelloWorld"

我还创建了一个函数,它只返回一个数字(双精度),响应正文是:

1.0

这些是有效的 json 响应吗?简单的返回类型是否只是以这样的纯文本形式返回(没有括号标记)?

【问题讨论】:

标签: json wcf rest


【解决方案1】:

有效的 JSON 响应以 { 开头的对象或 [ 开头的对象列表。

如果未封装,本机类型不是有效的 JSON。尝试JSONlint 验证有效性。

【讨论】:

    【解决方案2】:

    RFC 4672,说不。这并不意味着它不能工作,但它并不严格符合标准。 (当然,也不是所有的 JSON 阅读器......)

    引用第 2 节“JSON 语法”:

    JSON 文本是一个标记序列。该组令牌包括六个 结构字符、字符串、数字和三个文字名称。

    JSON 文本是一个序列化的对象或数组。

    JSON-text = 对象/数组

    只有顶层的对象/映射和数组。

    【讨论】:

      【解决方案3】:

      根据official website,你需要使用这样的语法:

      你需要在{}之间声明你想要什么,像这样:

      {
          "test": "HelloWorld"
      }
      

      【讨论】:

      • 不太对,因为数组也是有效的 JSON。不幸的是,json.org 并没有明确说明语法中的有效根节点是什么。
      【解决方案4】:

      没有。例如:

      {
          "Foo": "HelloWorld"
      }
      

      您可以尝试JSONLint 看看哪些有效,哪些无效。

      【讨论】:

        猜你喜欢
        • 2016-10-25
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多