如何将字符串值原样传递给NSString

时间:2014-10-16 10:04:00

标签: ios swift ios8

我正在创建一个文本文件的JSON对象,我将它复制粘贴到""

这是 textJSON

{
        "product_id": 12,
        "product_title": "T-Shirt",
        "brand": {
            "brand_id": 3,
            "brand_name": "Armani"
        }
}

这里我是如何尝试将其传递给NSString而我收到unterminated string literal的错误

var stringJSON:NSString = "{
        "product_id": 12,
        "product_title": "T-Shirt",
        "brand": {
            "brand_id": 3,
            "brand_name": "Armani"
        }
}"

我知道我可以通过删除新行并逐步执行来修复它,但无论如何我都可以将此值发送到我的NSString而不检查复制粘贴上的每个错误?

4 个答案:

答案 0 :(得分:1)

您可以使用json缩小器(例如http://www.httputility.net/json-minifier.aspx),然后将所有"替换为\"

答案 1 :(得分:1)

为XCode安装HOStringSense-for-Xcode只需复制和粘贴操作即可轻松添加井格式的字符串

主页:https://github.com/holtwick/HOStringSense-for-Xcode

答案 2 :(得分:1)

Swift不支持多行字符串文字。您必须删除所有换行符并转义所有引号。你的字符串将如下所示:

var stringJSON:NSString = "{ \"product_id\": 12, \"product_title\": \"T-Shirt\", \"brand\": {\"brand_id\": 3, \"brand_name\": \"Armani\" } }"

如果必须对多个字符串执行此操作,则可能有更好的方法来存储JSON,而不是将其硬编码到程序中。从.json文件加载不会有这些问题。

答案 3 :(得分:0)

由于引号,问题正在发生。我修改了代码如下: -

var stringJSON:NSString = "{\"product_id\": 12,\"product_title\": \"T-Shirt\",\"brand\": {\"brand_id\": 3,\"brand_name\": \"Armani\"}}"

它似乎正在发挥作用。在字符串中添加引号时,它会将其视为字符串的结尾。请将字符串中的所有引号(“)更改为带有转义字符(\”)的引号。另外,我尽量避免在多行上传播字符串。

希望这有帮助!