2015-05-11 3 views
0

Я хочу написать комбинацию словаря и массива данных.Как написать данные смешанного режима JSON?

Мои данные выглядит следующим образом

Функция я использую

func writeJSONdata() 
    { 
    var error: NSError? 
    var filename:String = "testWrite.json" 
    var dict:NSMutableDictionary = ["3Dmodel":"Model_Student_v3", 
"3Ddata":"testdata file", 
"3DColors":"color file name"] 

    var myArray:[Float] = [1.0,-0.13131,12.0] 

    let dirPaths = NSSearchPathForDirectoriesInDomains(
     NSSearchPathDirectory.DocumentDirectory, 
     NSSearchPathDomainMask.UserDomainMask, 
     true 
    ) 
    let docsDir = dirPaths[0] as String 
    let filePath = docsDir.stringByAppendingPathComponent(filename) 

    if let outputJSON = NSOutputStream(toFileAtPath: filePath, append: false) 
    { 
     outputJSON.open() 
     NSJSONSerialization.writeJSONObject(dict, toStream: outputJSON, options: NSJSONWritingOptions(), error: &error) 
     NSJSONSerialization.writeJSONObject(myArray, toStream: outputJSON, options: NSJSONWritingOptions(), error: &error) 
     outputJSON.close() 
    } 
    } 

Конечно, JSON не является действительным, поскольку нет никакого имени, чтобы прикрепить к массиву.

> { 
>  "3Dmodel": "Model_Student_v3", 
>  "3DColors": "color file name", 
>  "3Ddata": "testdata file" }[ 
>  1, 
>  -0.13131, 
>  12 ] 

Это должно выглядеть

{ 
    "3Dmodel": "Model_Student_v3", 
    "3DColors": "color file name", 
    "3Ddata": "testdata file", 
    "data": [ 
     1, 
     -0.13131, 
     12 
    ] 
} 

ответ

1

Просто используйте Dict [ "данных"] = MyArray, а затем написать Dict.

+0

Спасибо, что работа, но выглядит уродливо, почему не добавляет массив в конец? вместо середины? { "3DColors": "название цвета файла", "данных": [ 1, -0,13131, ], "3Dmodel": "Model_Student_v3", "3Ddata": "TestData файл" } –

Смежные вопросы