我需要编写一些代码来从应用程序将从网站接收的 JSON 字符串中检索数据。
这是 JSON 字符串。
{
"client" :
{
"Name" : "john doe",
"Phone" : 12345678,
"Address": "5th av",
},
"order" : [
{
"Code" : 101,
"Quantity" : 1,
"Cost": 10.50,
"Coment" : ""
},
{
"Code" : 102,
"Quantity" : 3,
"Cost": 8.50,
"Coment" : ""
},
{
"Code" : 103,
"Quantity" : 1,
"Cost": 21.50,
"Coment" : ""
}
]
}
Run Code Online (Sandbox Code Playgroud)
我对如何读取对和数组感到非常困惑。我已经尝试了这里和其他论坛上发布的大量代码,但仍然无法完成。
谁能给我一些提示来完成它?我正在使用 XE5 和 JSON 单元。
我不会为您编写实际的代码,但我会给您一个提示。
以下是您所显示的 JSON 的结构:
目的
|
|_ 客户端(对象)
| |_ 名称(字符串)
| |_ 电话(字符串)
| |_ 地址(字符串)
|
|_ 顺序(数组)
|_ [0](对象)
| |_ 代码(数字)
| |_ 数量(数量)
| |_ 代码(数字)
| |_ 评论(字符串)
|
|_ [1](对象)
| |_ 代码(数字)
| |_ 数量(数量)
| |_ 代码(数字)
| |_ 评论(字符串)
|
|_ [2](对象)
|_ 代码(数字)
|_ 数量(数量)
|_ 代码(数字)
|_ 评论(字符串)
您可以将其一对一映射到Data.DBXJSON单元中的 Delphi 原生 JSON 类(它们已移至System.JSONXE6 中的单元)。
TJSONObject.ParseJSONValue(),它返回一个TJSONValue. 将其类型转换为TJSONObject.Values属性来访问client和order值。分别将它们类型转换为TJSONObject和TJSONArray。client对象,使用其Values属性来访问Name、Phone和Address值。您可以调用他们的Value()方法来获取它们的字符串值。order数组,使用它的Count和Items属性,或者它的GetEnumerator方法(间接在for..in循环中,迭代数组项。将每个项类型转换为 aTJSONObject以访问其Values属性。对于数字值,将它们类型转换为以TJSONNumber访问其属性) AsInt、AsInt64、 和AsDouble所需的属性。有关更多信息,请参阅 Embarcadero 的JSON 文档。
| 归档时间: |
|
| 查看次数: |
3975 次 |
| 最近记录: |