【问题标题】:I am having trouble parsing the JSON in livecode我无法在 livecode 中解析 JSON
【发布时间】:2021-12-01 12:33:38
【问题描述】:

我正在尝试创建一个简单的移动应用程序来查询 API 并解析响应以显示某些值。

手机有 2 个字段,即:

  1. API查询按钮
  2. 显示内容的大文本框

在我的实时代码堆栈中,我包含以下内容:

  1. JSON 库
  2. mergJSON
  3. tsNet

api响应如下:

{
  "data": [
    {
      "id": 1,
      "date_created": "2021-11-08T17:12:03Z",
      "date_updated": "2021-11-22T16:08:55Z",
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@unknown.com",
      "phone": "9876543210",
      "dob": "1980-01-01",
      "password": "xxxxxxxxx",
      "plan_start": "2021-11-22T16:07:46Z",
      "plan_expiry": "2021-12-21T16:06:25Z"
    }
  ]
}

我想解析 JSON 以在文本框中显示电子邮件字段值。

在我的实时代码堆栈中:

  1. 按钮被命名为“getdata”
  2. 文本框命名为“flddata”

在按钮脚本中,我添加了以下代码:

   put "<api url endpoint>" into tUrl
   put "Authorization: Bearer xxxxxxxxx" into tHeaders
   put tsNetGetSync(tUrl, tHeaders, tRecvHeaders, tResult, tBytes) into tData
   put JSONToArray(tData) into tDataArray
   put tDataArray["email"] into field "flddata"

但这不起作用。什么都没发生。对于我的生活,我无法弄清楚出了什么问题。任何帮助,将不胜感激。非常感谢!

【问题讨论】:

    标签: livecode


    【解决方案1】:

    访问从您共享的 JSON 构建的数组的“电子邮件”键。您必须先访问“数据”键,然后再访问键 1。因此您的代码的最后一行如下:

    put tDataArray ["data"] [1] ["email"] into field "flddata"
    

    提示: 在该行上放置一个断点。这将允许您查看变量的内容,以便您可以查看数组的结构。

    【讨论】:

    • 谢谢@torocruzand。这行得通!我正在尝试使用密钥零,并且在此解决方案解析文档以实现 Livecode 数组索引从 1 开始之后。非常感谢!
    【解决方案2】:

    看起来它可能是一个多维数组。这里有一个简单的方法来了解它的结构:

    1. 将树视图小部件拖到您的卡片上。

    2. 将小部件的arrayData 属性设置为您的数组tDataArray。像这样:

      set the arrayData of widget "Tree View" to tDataArray

    您应该在树形视图小部件中看到数组的结构。创建的数组可能如下所示:

    put tDataArray[1]["email"] into field "flddata"
    

    【讨论】:

      猜你喜欢
      • 2018-03-10
      • 1970-01-01
      • 2021-08-23
      • 2020-11-04
      • 2019-11-11
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多