将 JSON 数组解析为图表中的数据单元格

Posted

技术标签:

【中文标题】将 JSON 数组解析为图表中的数据单元格【英文标题】:Parse a JSON array into a data cell in a chart 【发布时间】:2020-06-09 08:54:51 【问题描述】:

我正在尝试在 SwiftUI 的图表中为我的运动队中的球员提供健身数据。每个玩家都有一个 JSON 文件中的条目 -

    [
    "playerName": "AB",
    "id": 1075,
    "playerImage": "ainabrudy",
    "playerPosition": "Link",
    "playerDOB": "11/May/2002",
    "fiveKmRun": "[27.5, 32.5, 25.0, 20.7]",
    "broncoTimes": "[23.5, 28.5, 21.0, 39.7]",
    "glycoTimes": "[26.5, 23.5, 35.0, 33.7]"
]

对于最后 3 项,我想将数据解析为图表结构以替换静态数据 -

    struct fivekmRun:View 
          var body: some View 
            VStack
        LineView(data: [58,27,59,3,12,32,17,23,43], title: "5km Run Times", legend:          
              "2020").padding()
    
    
    

LineView 只是呈现数据数组中的静态数据。如何在玩家详情视图中将每个玩家的静态数据替换为 JSON 数据?

【问题讨论】:

检查类似this 【参考方案1】:

好的,我已经解决了这个问题。播放器 JSON 现在如下所示 -

 [
    "playerName": "AB",
    "id": 1075,
    "playerImage": "ainabrudy",
    "playerPosition": "Link",
    "playerDOB": "11/May/2002",
    "fiveKmRun": [27.5, 32.5, 25.0, 20.7],
    "broncoTimes": [23.5, 28.5, 21.0, 39.7],
    "glycoTimes": [26.5, 23.5, 35.0, 33.7]
]

在玩家数据模型中,“fiveKmRun”、“broncoTimes”、“glycoTimes”现在列为 -

    struct playerDataModel: Hashable, Codable, Identifiable 

    ...
         var fiveKmRun: [Double]
         var broncoTimes: [Double]
         var glycoTimes: [Double]`

现在图表获取数据如下

struct fivekmRun:View 
var play: playerDataModel
          var body: some View 
            VStack
        LineView(data: (player.fiveKmRun), title: "5km Run Times", legend: "2020").padding()
    
    
    

完成。

【讨论】:

以上是关于将 JSON 数组解析为图表中的数据单元格的主要内容,如果未能解决你的问题,请参考以下文章

将熊猫数据框单元格中的字典解析为新行单元格(新列)

表格中如何提取指定单元格的内容呢?

将 json 数据存储在表格视图的交替单元格中

保存、保留和检索数组中的选定单元格

根据 JSON 文件中的内容文本调整带有 UILabel 的自定义单元格的大小

解析对象数组并填充表格视图单元格 Swift