我在解析 livecode 中的 JSON 时遇到问题

问题描述 投票:0回答:2

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

手机有 2 个字段,即:

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

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

  1. JSON 库
  2. 合并JSON
  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": "[email protected]",
      "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
2个回答
2
投票

访问从您共享的 JSON 构建的数组的“email”键。您必须首先访问“data”键,然后访问键 1。因此代码的最后一行如下:

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

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


0
投票

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

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

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

    set the arrayData of widget "Tree View" to tDataArray

您应该在树视图小部件中看到数组的结构。创建的数组可能看起来像这样:

put tDataArray[1]["email"] into field "flddata"
© www.soinside.com 2019 - 2024. All rights reserved.