我已经将一个严格的json对象从javascript传递给了swift。
js
'use strict';
var labdetail = function()
{
var labs = ["sdsdsd","suds","DH-sdsd","DH-sdsd"]
var labgrp = {labGrp:"R", labGrpDesc:"sdsd",labs:labs}
var labGroups = []
labGroups[0] = labgrp
var labs1 = ["dsdsd","suds","DH-sdsd","DH-dfdf]
var labgrp1 = {labGrp:"H", labGrpDesc:"dfdf",labs:labs}
labGroups[1] = labgrp1
return JSON.stringify(labGroups);
}swift
import UIKit
import JavaScriptCore
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let context = JSContext()
let returnLabResultJSPath = NSBundle.mainBundle().pathForResource("returnLabResult", ofType: "js")
let contentData = NSFileManager.defaultManager().contentsAtPath(returnLabResultJSPath!)
let content = NSString(data: contentData!, encoding: NSUTF8StringEncoding) as? String
// let returnresult = try String(contentsOfFile: returnLabResultJSPath!, encoding: NSUTF8StringEncoding)
context.evaluateScript(content)
let getlabfunction = context.objectForKeyedSubscript("labdetail")
var labresult = getlabfunction.callWithArguments([])
let labresultdict :dictionary = labresult.toDictionary()
print(labresult)
}我想把它改回原来的结构。我试着使用todictionary(),但失败了
现在实验室的结果是[{{“labGrp”:“R”,“labGrpDesc”:“悲伤”,“实验室”:“悲伤”,"asdasd",“sadsad”,"DH-asdasd"},{"labGrp":"H",“labGrpDesc”:“生物学”,“实验室”:"asdsad",“asd桑”,“和”,"DH-asdasd"}]。
我希望它是一个数组,并且数组包含{"labGrp":"R",“labGrpDesc”:“悲伤”,“实验室”:“悲伤”,"asdasd",“sadsad”,"DH-asdasd"}
array1包含{"labGrp":"H",“labGrpDesc”:“生物学”,“实验室”:"asdsad",“asdsad”," and ","DH-asdasd"}
发布于 2016-06-01 07:33:10
希望您需要反序列化JSon对象,然后它会生成Dictionary对象。
例如:
var labresult = getlabfunction.callWithArguments([])
do{
if let data = labresult.dataUsingEncoding(NSUTF8StringEncoding) {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [String:String]
}catch{ }https://stackoverflow.com/questions/37561806
复制相似问题