SwiftyJSON을 사용하여 JSON을 루프하는 방법
난 스위프티J와 함께 해석할 수 있는 아들이 있어손:
if let title = json["items"][2]["title"].string {
println("title : \(title)")
}
완벽하게 동작합니다.
하지만 나는 그것을 통과할 수 없었다.두 가지 방법을 시도했는데 첫 번째 방법은
// TUTO :
//If json is .Dictionary
for (key: String, subJson: JSON) in json {
...
}
// WHAT I DID :
for (key: "title", subJson: json["items"]) in json {
...
}
XCode가 for 루프 선언을 받아들이지 않았습니다.
두 번째 방법은 다음과 같습니다.
// TUTO :
if let appArray = json["feed"]["entry"].arrayValue {
...
}
// WHAT I DID :
if let tab = json["items"].arrayValue {
...
}
XCode가 if 문을 받아들이지 않았습니다.
내가 뭘 잘못하고 있지?
루프를 통과하려면json["items"]
어레이, 시행:
for (key, subJson) in json["items"] {
if let title = subJson["title"].string {
println(title)
}
}
두 번째 방법은.arrayValue
non을 반환하다 Optional
어레이를 사용합니다..array
대신:
if let items = json["items"].array {
for item in items {
if let title = item["title"].string {
println(title)
}
}
}
실제로 다음을 사용하고 있기 때문에 조금 이상하다고 생각합니다.
for (key: String, subJson: JSON) in json {
//Do something you want
}
에 구문 오류가 표시됩니다(Swift 2.0 이상).
정답:
for (key, subJson) in json {
//Do something you want
}
여기서 키는 문자열이고 subJson은 JSON 객체입니다.
조금 다른 예를 들어 보겠습니다.
//jsonResult from API request,JSON result from Alamofire
if let jsonArray = jsonResult?.array
{
//it is an array, each array contains a dictionary
for item in jsonArray
{
if let jsonDict = item.dictionary //jsonDict : [String : JSON]?
{
//loop through all objects in this jsonDictionary
let postId = jsonDict!["postId"]!.intValue
let text = jsonDict!["text"]!.stringValue
//...etc. ...create post object..etc.
if(post != nil)
{
posts.append(post!)
}
}
}
}
for 루프에서 다음 유형의key
그런 타입일 수 없다"title"
.부터"title"
는 문자열입니다.다음으로 넘어갑니다.key:String
그 후, Inside the Loop은 특별히 사용할 수 있습니다."title"
필요할 때.그리고 또 다른 타입은subJson
그래야만 한다.JSON
.
JSON 파일은 2D 어레이로 간주할 수 있기 때문에json["items'].arrayValue
는 여러 개체를 반환합니다.다음을 사용하는 것이 좋습니다.if let title = json["items"][2].arrayValue
.
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html 를 참조해 주세요.
README 를 확인해 주세요.
//If json is .Dictionary
for (key: String, subJson: JSON) in json {
//Do something you want
}
//If json is .Array
//The `index` is 0..<json.count's string value
for (index: String, subJson: JSON) in json {
//Do something you want
}
다음을 통해 json을 반복할 수 있습니다.
for (_,subJson):(String, JSON) in json {
var title = subJson["items"]["2"]["title"].stringValue
print(title)
}
SwiftyJ의 문서를 보다SON. https://github.com/SwiftyJSON/SwiftyJSON 에서 문서의 "Loop" 섹션을 참조합니다.
언급URL : https://stackoverflow.com/questions/28365939/how-to-loop-through-json-with-swiftyjson
'programing' 카테고리의 다른 글
Angular js 지시어를 사용한 하이차트 렌더링 (0) | 2023.03.12 |
---|---|
MongoDB 인스턴스화 실패 해결 방법 (0) | 2023.03.12 |
CORS 및 Origin 헤더 (0) | 2023.03.12 |
SQL(ORACLE): 주문 기준 및 제한 (0) | 2023.03.12 |
python JSON은 첫 번째 레벨에서만 키를 가져옵니다. (0) | 2023.03.12 |