【问题标题】:JSON Object ParseJSON 对象解析
【发布时间】:2019-10-15 20:43:07
【问题描述】:

exercise question screenshot

不确定缺少什么。与我的作业问题相比,其他讨论解决方案似乎太复杂了:

问:

-变量str_json已经被赋值为一个JSON对象的字符串

-调用parse方法,传递str_json并将返回值赋给变量jsonobj

-将属性the_city赋给变量v_the_city

-将属性stateval赋给变量v_stateval

var str_json = {'v_the_city':'the_city','v_stateval':'stateval'};
var jsonobj = JSON.parse(str_json);

语法错误:

JSON dataJSON.parse:第 1 行第 2 列的意外字符

语法错误:意外标记:标识符

【问题讨论】:

  • 你为什么要解析不是字符串的东西?它已经是 JS,而不是 JSON。
  • 有效的str_json 应该看起来更像这样:"{\"v_the_city\":\"the_city\",\"v_stateval\":\"stateval\"}" 如果它实际上应该是一个字符串...
  • @jonrsharpe 不确定,应该怎么看?
  • 应该是是一个字符串,如@War10ck所示
  • @War10ck 这是完整的问题,所以我猜它不应该是一个字符串

标签: json parsing object


【解决方案1】:

str_json 应该是 JSON 字符串,而不是对象。

JSON.parse() 方法解析 JSON 字符串,构造字符串描述的 JavaScript 值或对象。可以提供一个可选的 reviver 函数来在结果对象返回之前对其执行转换。在此处阅读更多信息,link
语法:

JSON.parse(text[, reviver])

参数:
text - 要解析为 JSON 的字符串。有关 JSON 语法的说明,请参阅 JSON 对象。
reviver - [可选] 如果是函数,则规定在返回之前如何转换最初通过解析生成的值。

【讨论】:

  • 我认为这可能超出了我的需要,我们还没有讨论过 reviver 选项。让我们忘记我提供了答案。列出了问题值,您将如何创建它? - 变量 str_json 已被分配一个 JSON 对象的字符串 - 调用 parse 方法,将其传递 str_json 并将返回值分配给变量 jsonobj - 将属性 the_city 分配给变量 v_the_city - 将属性 stateval 分配给变量 v_stateval跨度>
  • 答案只是告诉您JSON.parse() 方法的用法,该方法可以接收字符串文本作为参数和可选功能。关键是如果你给它传递了错误的类型参数,它会抛出 SyntaxError。
  • 我删除了 sn-p,因为我认为这让每个人都感到困惑。我应该按照提供的确切说明构建代码。
  • 我添加了问题的截图,我应该使用它从头开始构建。
  • 又搞定了,这就是我从这些问题的说明中得到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2011-09-23
  • 2020-01-08
  • 1970-01-01
  • 2023-03-05
  • 2022-08-12
相关资源
最近更新 更多