【问题标题】:store a json to a variable swift3将 json 存储到变量 swift3
【发布时间】:2018-04-04 19:03:42
【问题描述】:
{
    "schedule": [
    {
    "day": "Sunday",
    "events": [
    {
    "show_id": "00000",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "00030",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "00100",
    "show_time": "12:00",
    "show_time_end": "03:00"
    },
    {
    "show_id": "00130",
    "show_time": "03:00",
    "show_time_end": "06:00"

    },
    {
    "show_id": "00200",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "00300",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "00400",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "00500",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    },
    {
    "day": "Monday",
    "events": [
    {
    "show_id": "00600",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "00730",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "00800",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "00930",
    "show_time": "03:00",
    "show_time_end": "06:00"

    },
    {
    "show_id": "01200",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "01300",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "01400",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "01500",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    },
    {
    "day": "Tuesday",
    "events": [
    {
    "show_id": "01600",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "01730",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "01800",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "01930",
    "show_time": "03:00",
    "show_time_end": "06:00",

    },
    {
    "show_id": "02000",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "02100",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "02200",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "02300",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    },
    {
    "day": "Wednesday",
    "events": [
    {
    "show_id": "02400",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "02530",
    "show_time": "09:00",
    "show_time_end": "12:00"
    },
    {
    "show_id": "02600",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "02730",
    "show_time": "03:00",
    "show_time_end": "06:00"

    },
    {
    "show_id": "02800",
    "show_time": "06:00",
    "show_time_end": "09:00",
    "show_title": "Talk Show"
    },
    {
    "show_id": "02900",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "03000",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "03100",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    },
    {
    "day": "Thursday",
    "events": [
    {
    "show_id": "04000",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "04130",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "04200",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "04330",
    "show_time": "03:00",
    "show_time_end": "06:00"

    },
    {
    "show_id": "04400",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "04500",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "04600",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "04700",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    },
    {
    "day": "Friday",
    "events": [
    {
    "show_id": "04800",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "04930",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "05000",
    "show_time": "12:00",
    "show_time_end": "02:00"

    },
    {
    "show_id": "05130",
    "show_time": "02:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "05230",
    "show_time": "03:00",
    "show_time_end": "06:00"

    },
    {
    "show_id": "05300",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "05400",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "05500",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "05600",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    },
    {
    "day": "Saturday",
    "events": [
    {
    "show_id": "05700",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "05830",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "05900",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "06030",
    "show_time": "03:00",
    "show_time_end": "06:00",

    },
    {
    "show_id": "06100",
    "show_time": "06:00",
    "show_time_end": "09:00"

    },
    {
    "show_id": "06200",
    "show_time": "09:00",
    "show_time_end": "12:00"

    },
    {
    "show_id": "06300",
    "show_time": "12:00",
    "show_time_end": "03:00"

    },
    {
    "show_id": "06400",
    "show_time": "03:00",
    "show_time_end": "06:00"

    }
    ]
    }
    ]
  }

这不是任何 API 调用的输出。我以 json 响应的形式输入了它。我想将此 JSON 存储到一个变量中并在我的程序中使用它。我尝试了很多方法。但我收到错误。我想将它存储到一个变量中,并将每个细节一个一个地检索到一个字符串数组中。 谁能帮助我。谢谢。

【问题讨论】:

  • 什么样的错误?请更具体并分享错误详情。
  • 我试过 var v = myJSON.. 我不知道它是否正确

标签: ios swift3 xcode8


【解决方案1】:

数组中的最后一个元素不应以','结尾。

    "show_time_end": "09:00",

应该是

    "show_time_end": "09:00"

在代码中加载示例:

let data = "string here".data(using: .utf8); 
let json = try JSONSerialization.jsonObject(with: data) as? [String: Any],
let schedule = json["schedule"]

【讨论】:

  • 好的,修改了序列列表最后一项错误的注释
  • 这也是一个打字错误。它与格式无关。我想将它存储在一个变量中。就像我们用来将字符串存储到变量一样。(例如 var s = mystring)
  • 谢谢兄弟。但该示例适用于 JSON 输出或响应。这不是 JSON 响应。我想这样输入并存储在一个变量中。比如 var v = 上面提到的 JSON
  • 让 data = "这里的字符串".data(使用: .utf8);让 json = 试试 JSONSerialization.jsonObject(with: data) as? [字符串:任意],
  • 我想为了帮助您,请准确解释您的需求。 JSON 通常从文件或网络加载。你在这里的最终目标是什么。你需要使用类还是字典?
【解决方案2】:

如果你在项目中使用 json 作为 .json 文件,那么你应该试试这个:

if let path = Bundle.main.path(forResource: "yourfilename", ofType: "json") {
do {
    let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .alwaysMapped)
    do{
        let json =  try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: Any]
// you can use the json object now
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多