2015-04-24 3 views
-1

У меня есть сетевая розетка, которая нажимает на меня JSON каждую секунду. Первый ответ от сервера полный словарь:JSON Patching in Swift

{ 
    "key1" : "value1", 
    "key2" : { 
     "key4" : "value3" 
    }, 
    "key3" : "value2" 
} 

Каждый второй сервер толкает меня новый словарь в формате JSON, но только в том числе ценностей, которые должны быть изменены:

{ 
    "key1" : "olderButStillNew", 
    "key2" : { 
     "key4" : "newValue" 
    } 
} 

Я хочу, чтобы это результат в следующем словаре:

{ 
    "key1" : "olderButStillNew", 
    "key2" : { 
     "key4" : "newValue" 
    }, 
    "key3" : "value2" 
} 

настоящее время я использую SwiftyJSON для анализа и обработки JSON. Есть ли хороший способ, которым я должен выполнить этот «патч»?

Любые идеи или помощь были бы замечательными!

+0

Вы должны изменить свой сервер для отправки все значения вместо значений, которые изменились – CrApHeR

+0

У меня, к сожалению, нет контроля над этим, иначе я бы уже это сделал. –

+0

Вы можете получить сообщение json и добавить недостающие поля перед его использованием. Для этого вам необходимо централизовать свои сообщения в одном месте и распространять сообщения в своем приложении. – CrApHeR

ответ

0

, если вы ожидаете, что явный тип значения, например String вы могли бы сделать что-то вроде

if let value = responseJson["key"].String { 
    //update the value 
} 

Тогда вы должны сделать это для всех ваших возможных ключей