2017-12-06 1 views
-1

프로젝트에 Marshal이 사용됩니다. "Key""SomeKey" (이 경우는 것 "4056")입니다마샬을 사용하여 값 참조 키 가져 오기

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

지금 나는 "Value"의 콘텐츠를 원하는 :

는 그리고 나는이처럼 보이는 JSON 구조를 가지고있다.

누구든지이 라이브러리로 어떻게하는지 알고 있습니까?

나는 모든 항목을 비 정렬 화하는 클래스 생성 :

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

을하고 내가 필요한 일을 필터링의 경우 사람에

+1

(나는 원수와 함께이 작업을 수행하는 쉬운 방법이없는 것 같아요) wift 4,'JSONDecoder/JSONEncoder' 고려해주십시오. –

+0

@CodeDifferent 그게 제가 생각한 것입니다. 그러나 방금 하나의 변수로 큰 시스템을 확장해야합니다. (당연히 다른 것보다 다릅니다.) – Daniel

+1

JSON이 유효하지 않습니다. 파서가 없습니다. 그 주위에 –

답변

0

가 동일한 문제를 겪고, 이것은 내가 찾은 유일한 방법입니다 :

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

당신이 S에있는 경우