Cómo agregar nuevos datos a una matriz JSON existente (swiftyJSON)

Tengo un set de datos de SwiftyJson que he declarado y lo he llenado de datos. El código que estoy usando para rellenar el set de hoge es el siguiente: self.hoge = JSON(data: data!)

pero necesito agregar nuevos datos swiftyJSON a este array hoge. Me di count de que el array hoge no tiene propiedad append. ¿Cómo debo hacer eso?

Gracias

SwiftyJSON no tiene funcionalidad de append o extend .

Usted puede:

 self.hoge = JSON(self.hoge.arrayObject! + JSON(data: newData).arrayObject!) 

Pero recomiendo declarar self.hoge como [JSON]

 var hoge:[JSON] = [] func readMoreData() { let newData: NSData = ... if let newArray = JSON(data:newData).array { self.hoge += newArray } } 

Otra solución, usando la Extension

 extension JSON{ mutating func appendIfArray(json:JSON){ if var arr = self.array{ arr.append(json) self = JSON(arr); } } mutating func appendIfDictionary(key:String,json:JSON){ if var dict = self.dictionary{ dict[key] = json; self = JSON(dict); } } } 

Utilizar:

  var myJSON: JSON = [ "myDictionary": [String:AnyObject](), "myArray" : [1,2,3,4] ] myJSON["myDictionary"].appendIfDictionary("A", json: JSON(["key1":"value1"])) myJSON["myDictionary"].appendIfDictionary("B", json: JSON(["key2":"value2"])) myJSON["myArray"].appendIfArray(JSON(5)) print(myJSON) 

printing:

 { "myArray" : [ 1, 2, 3, 4, 5 ], "myDictionary" : { "B" : { "key2" : "value2" }, "A" : { "key1" : "value1" } } } 
 let jsonNewJSON:JSON = JSON(newData) var arr:[JSON]=jsonOBJ.arrayValue arr.append(jsonNewJSON) var combinedOBJ = JSON(arr) 

Utilicé el código anterior para agregarlo a una matriz swiftyjson. Primero convertí los nuevos datos a un object JSON. Luego obtuve la matriz del JSON existente y anexo el nuevo JSON. Convertí la matriz de nuevo a un object JSON. Admisiblemente, no es un gran código, pero no necesitaba interpretación aquí y hizo el trabajo.

Puede usar la function de merge para esto. https://github.com/SwiftyJSON/SwiftyJSON#merging

 var array: JSON = [1, 2, 3] array = try! array.merged(with: [4]) // -> [1, 2, 3, 4] 

self.hoge debe ser una matriz Swift (que es mutable si se declara como var) o se puede convertir en un NSMutableArray. Si es de tipo Array, use Anexar. Si se asigna a un NSMutableArray, use self.hoge.addObject(yourObject) .