私はSwiftyJSONが初めてで、問題が発生しています。JSONファイル全体を文字列として返すようにできますが、解析しようとすると空の変数が返され続け、何が間違っているのかわかりません。
これは私のJSONファイルのフォーマットです:
[
{
"entryID": 1,
"from": "String",
"to": "String",
"value": "String"
},
{
...
},
...
]
そして、これは大まかにそれでやりたいことです(非常に洗練されていないコードで、申し訳ありませんが、私はSwiftを初めて使用します):
for entry: JSON in indexJSON.arrayValue {
var vEntryID: Int
var vFrom: String
var vTo: String
var vValue: String
for (dictKey: String, dictVal: JSON) in entry.dictionaryValue {
if(dictKey=="entryID") {vEntryID = dictVal.intValue}
if(dictKey=="from") {vFrom = dictVal.stringValue}
if(dictKey=="to") {vTo = dictVal.stringValue}
if(dictKey=="value") {vValue = dictVal.stringValue}
}
someSwiftObject[vEntryID]["from"] = vFrom
someSwiftObject[vEntryID]["to"] = vTo
someSwiftObject[vEntryID]["value"] = vValue
}
ただし、indexJSON.arrayValue は常に空であるため、このブロックはまったく実行されません。
以下を実行しようとすると、完全なファイルの内容がコンソールに正しく出力されます。
let indexJSON = JSON(content!)
println(indexJSON.stringValue)
しかし、要素をフェッチするためにさらに深く行こうとすると、何も返されません。
if(indexJSON.arrayValue.isEmpty==true) {println("indexJSON.arrayValue is Empty")}
if(indexJSON[0].arrayValue.isEmpty==true) {println("indexJSON[0].arrayValue is Empty")}
if(indexJSON[0].dictionaryValue.isEmpty==true) {println("indexJSON[0].dictionaryValue is Empty")}
if(indexJSON[0]["entryID"]==nil) {println("indexJSON[0][\"entryID\"].stringValue is Empty")}
出力:
indexJSON.arrayValue is Empty
indexJSON[0].arrayValue is Empty
indexJSON[0].dictionaryValue is Empty
indexJSON[0]["entryID"].stringValue is Empty
どんな助けにも感謝します!私は何を間違っていますか?