【问题标题】:How to make json format valid?如何使json格式有效?
【发布时间】:2019-08-29 22:38:29
【问题描述】:

我在我的 C# 代码隐藏中生成了一个包含 json 的字符串,然后我将它发送到前端以在 Javascript 中使用。 我想在 $.getJSON("<%=myJson%>") 这样的函数中使用该 json,但我遇到了一些错误

我已经尝试直接使用字符串,因为 json 是 javascript 代码,但它不起作用。控制台显示

"Uncaught SyntaxError: missing ) after argument list"

然后我尝试了JSON.parse(myJson),但它也不起作用。控制台显示

“未捕获的语法错误:意外的标识符”

这就是我的 Json 字符串在代码隐藏中的样子:

"\"iss\":\"123123123\",\"exp\":123123,\"jti\":\"asdasdasdasd\",\"sub\":\"asdasdasdasd\",\"grants\":{\"identity\":\"John\",\"voice\":{\"incoming\":{\"allow\":true},\"outgoing\":{\"application_sid\":\"asdasdasdasd\"}}}}"

然后当我将它发送到前端的 Javascript 时:

$.getJSON("
"iss":"123123123","exp":123123,"jti":"asdasdasdasd","sub":"asdasdasdasd","grants":{"identity":"John","voice":{"incoming":{"allow":true},"outgoing":{"application_sid":"asdasdasdasd"}}}}")

更新 我在代码隐藏中修复了 json 语法:

"{\"iss\":\"123123123\",\"exp\":123123,\"jti\":\"asdasdasdasd\",\"sub\":\"asdasdasdasd\",\"grants\ ":{\"identity\":\"John\",\"voice\":{\"incoming\":{\"allow\":true},\"outgoing\":{\"application_sid\" :\"asdasdasdasd\"}}}}"

现在我在 javascript 中收到此错误:

$.getJSON('{"iss":"123123123","exp":123123,"jti":"asdasdasdasd","sub":"asdasdasdasd","grants":{"identity":"John ","voice":{"incoming":{"allow":true},"outgoing":{"application_sid":"asdasdasdasd"}}}}')

GET http://localhost:.... 400(错误请求)

我认为这是因为这个函数需要一个 url 来访问,但我怎样才能让它读取我的 json 字符串?

【问题讨论】:

  • 欢迎来到 Stack Overflow。如果您创建一个说明您的问题的minimal reproducible example,我们可以更快地为您提供帮助。请注意,这不是您的整个项目。它只需要是您从头开始创建的一个小示例,它使用您所询问的概念。请务必阅读我提供的链接以获取有关如何创建此类示例的提示。
  • 这不是一个有效的 json 字符串,这是一个最小的例子 {"key":"value"}
  • @VelimirTchatchevsky 这就是他要解决的问题。
  • @Barmar 在它周围添加引号也不能使它成为有效的 json,这就是为什么我举一个简单的 json 的例子 object
  • 哦,我以为他在使用 C# 库来创建 JSON。

标签: javascript json


【解决方案1】:

在 JavaScript 代码中对 JSON 使用单引号,因为 JSON 对嵌入的字符串使用双引号。

$.getJSON('<%= myJson %>');

您还需要首先修复创建 myJson 的代码,以便将其正确格式化为 JSON。见How to create JSON string in C#

【讨论】:

    【解决方案2】:

    您的 json 错误,开头缺少 {。 以下功能应该可以工作:

    JSON.parse(`{"iss":"123123123","exp":123123,"jti":"asdasdasdasd","sub":"asdasdasdasd","grants":{"identity":"John","voice":{"incoming":{"allow":true},"outgoing":{"application_sid":"asdasdasdasd"}}}}`)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-23
      • 2017-02-06
      • 2019-12-02
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      相关资源
      最近更新 更多