javascript - 解析嵌套的 Json

标签 javascript json parsing

我尝试解析此 Json 响应,但似乎 Json 的一部分以某种不同的格式发送,因此当尝试解析“sessionAttributes”下的“PREVIOUS_CONFIRMED_RESERVATION_SESSION_ATTRIBUTE”下的“Pricing”字段时,结果未定义尽管“sessionAttributes”之外的其他字段是可以访问的。

这是 Json 文件:

 {
"dialogState":"Fulfilled","intentName":"***","message":"Thank you....","messageFormat":"PlainText","responseCard":null,
    "sessionAttributes":{"PREVIOUS_CONFIRMED_RESERVATION_SESSION_ATTRIBUTE":
    "{\"ReservationType\":\"Main\",\"Pricing\":\"2000\",\"DP\":\"wedding\"}",


    "lastConfirmedReservation":"{\"ReservationType\":\"Shape\",\"Shape\":\"Round\"}"}
,"slotToElicit":null,
"slots":{"Shape":"Round"}
}

这是我在获取此 Json 响应后尝试访问的内容:

await fetch(
      '****',
      {
        method: 'POST',
        headers: {
      //**** some headers
        },
        body: JSON.stringify({ inputText: clientMessage })
      }
    )
      .then(r => r.json())
      .then(r => {
          pricing = r.sessionAttributes.PREVIOUS_CONFIRMED_RESERVATION_SESSION_ATTRIBUTE.Pricing;
      });

最佳答案

这是因为您的 PREVIOUS_CONFIRMED_RESERVATION_SESSION_ATTRIBUTE 字段是一个字符串,因此您应该使用 JSON.parse() 将其转换为 JSON ,然后访问定价

pricing = JSON.parse(r.sessionAttributes.PREVIOUS_CONFIRMED_RESERVATION_SESSION_ATTRIBUTE).Pricing;

关于javascript - 解析嵌套的 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54098741/

相关文章:

使用 cJSON.h 创建 json 对象

parsing - 用 Haskell 编写的解析器无法按预期工作

C++:将 const 作为 'this' 参数传递...丢弃涉及 Json 的限定符

parsing - 关于如何实现 BASIC 语言解析器/解释器的任何建议?

json - 从 Guidebox API 在 Swift 中解析 JSON 数据

javascript - 如何在 Codeigniter 中包含外部 javascript 库

javascript - 使用一个命令放置一个按钮及其 div

javascript - 将光标设置在字符串的末尾?

javascript - 从 iframe 访问 iframe 的父 localstorage 变量

javascript - 使用javascript将base64字符串转换为图像