2017-12-06 5 views
-1

プロジェクトではMarshalが使用されています。Marshalでキーを参照する値を取得

そして、私はこのようになりますJSONの構造を有する:

{"Stuff": 
    [ 
     {"Key": "SomeKey", "Value": "4056"}, 
     {"Key": "SomeOtherKey", "Value": "18"} 
    ] 
} 

を今私は(この場合、それは"4056"だろう)"Key""SomeKey"ある"Value"の内容を取得したいです。

誰もがこのライブラリでそれを行う方法を知っていますか?

+1

あなたはS上にある場合wift 4、 'JSONDecoder/JSONEncoder'を試してみてください –

+0

@CodeDifferentそれは私のものですが、ちょうど1つの変数でかなり大きなシステムを拡張する必要があります(もちろん、それは他のものとは異なります) – Daniel

+1

JSONは無効です。それを回避してください –

答えて

0

誰かが同じ問題を抱えている場合には、これは私が見つけた唯一の方法である:

私はすべてのこれらの項目非整列化するクラスを作成しました:

extension KeyValue: Unmarshaling { 
    internal init(object: MarshaledObject) throws { 
     self.name = try object <| "Key" 
     self.value = try object <| "Value" 
    } 
} 

をしてから、私は必要なものをフィルタリング:

let stuff: [KeyValue] 
var someKey: String? { 
    return stuff.first(where: { $0.name == "SomeKey" })?.value 
} 

(私は元帥でこれを行うための簡単な方法がないと思います)

関連する問題