2016-11-28 73 views
0

說我有一個變量轉換陣列<String>爲字符串,然後回到陣<String>

let stringArray = "[\"You\", \"Shall\", \"Not\", \"PASS!\"]" 

// if I show this, it would look like this 
print(stringArray) 
["You", "Shall", "Not", "PASS!"] 

現在讓我們有一個數組<字符串>

let array = ["You", "Shall", "Not", "PASS!"] 

// if I convert this into string 
// it would roughly be equal to the variable 'stringArray' 

if String(array) == stringArray { 
    print("true") 
} else { 
    print("false") 
} 

// output would be 
true 

現在說我應該怎麼做才能轉換變量「 stringArray'to'Array < String>'

+0

[這個問題](http://stackoverflow.com/questions/24111764/does- swift-provide-the-ability-to-eval-swift-code-like-javascript-does)表明在Swift中沒有'eval'操作,所以你可以寫一個小解析器。 – Gabriel

+3

這是JSON。使用'(NS)JSONSerialization'類。 – vadian

+0

所以我不得不把它從地獄中解脫出來?這是我現在正在考慮這樣做的唯一方法..悲傷地 –

回答

1

答案將是使用NSJSONSerialization轉換字符串

感謝Vadian爲尖

let dataString = stringArray.dataUsingEncoding(NSUTF8StringEncoding) 
let newArray = try! NSJSONSerialization.JSONObjectWithData(dataString!, options: []) as! Array<String> 

for string in newArray { 
    print(string) 
} 

瞧你有它,它現在是一個字符串數組

+0

然後你應該接受你的答案:) –

+0

'mutableContainers'在Swift中完全沒用,只是讀取它不需要的數據。 – vadian

+0

@AhmadF我應該等待2天才能接受我自己的回答 –