当前位置: 首页 > 面试题库 >

快速将数组转换为JSON字符串

伏德义
2023-03-14
问题内容

如何快速将数组转换为 JSON
字符串?基本上,我有一个文本框,其中嵌入了一个按钮。按下按钮后,文本字段文本将添加到中testArray。此外,我想将此数组转换为 JSON
字符串。

这是我尝试过的:

func addButtonPressed() {
    if goalsTextField.text == "" {
        // Do nothing
    } else {
        testArray.append(goalsTextField.text)
        goalsTableView.reloadData()
        saveDatatoDictionary()
    }
}

func saveDatatoDictionary() {
    data = NSKeyedArchiver.archivedDataWithRootObject(testArray)
    newData = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions(), error: nil) as? NSData
    string = NSString(data: newData!, encoding: NSUTF8StringEncoding) 
    println(string)
}

我也想使用我的方法返回 JSON 字符串savetoDictionart()


问题答案:

就目前而言,您正在将其转换为数据,然后尝试将数据转换为JSON形式的对象(失​​败,不是JSON)并将其转换为字符串,基本上,您进行了一堆毫无意义的转换。

只要数组仅包含JSON可编码的值(字符串,数字,字典,数组,nil),就可以使用NSJSONSerialization来实现。

相反,只需执行array-> data-> string部分:

迅捷3/4

let array = [ "one", "two" ]

func json(from object:Any) -> String? {
    guard let data = try? JSONSerialization.data(withJSONObject: object, options: []) else {
        return nil
    }
    return String(data: data, encoding: String.Encoding.utf8)
}

print("\(json(from:array as Any))")

原始答案

let array = [ "one", "two" ]
let data = NSJSONSerialization.dataWithJSONObject(array, options: nil, error: nil)
let string = NSString(data: data!, encoding: NSUTF8StringEncoding)

尽管您可能不应该使用强制展开,但是它为您提供了正确的起点。



 类似资料:
  • 在Objective-C中,我使用了以下内容:

  • 问题内容: 我有一个字符串: 我想要一个简单的方法将其转换为实际的。 我能从中挖掘出的所有其他问题都与将int字符串转换为数组有关。 我试着做 但是我明白了 手动清理边缘并去除斜线似乎是我做错了什么。 我很好奇是否有一种简单的方法可以将字符串数组作为字符串转换为字符串数组。 即转换为 解决方案 (感谢@Eric D) 问题答案: 将您的“字符串数组”编码为数据,然后将此数据作为JSON解码为Swi

  • 问题内容: 我有一个映射到Swift的C函数定义为: 我正在尝试传递函数的路径并尝试过: 但是在path [i]上我得到了错误: ‘下标’不可用:不能下标Int范围的字符串 也不 也不管用 除了无法正常工作外,我认为还必须有一种更好,更轻松的方法来做到这一点。以前使用CString在StackOverflow上的答案似乎不再起作用。有什么建议? 问题答案: 使用CString在StackOverf

  • 问题内容: 我具有来自Web服务的以下JSON字符串,并且正在尝试将其转换为 我在线上对此进行了验证,这似乎是正确的。现在我在android开发中使用以下代码来利用 这会引发异常和类型不匹配的异常。 问题答案: 在这里,您将获得JSONObject,因此请更改以下行: 具有以下内容: 之后

  • 问题内容: 如何将对象的json数组解析为具有这些对象作为字符串的bash数组? 我正在尝试执行以下操作: 但是回声会打印出线条,而不是特定的对象。对象的格式为: 我需要将其传递给api: 问题答案: 问题在于,仍然仅输出文本行; 您不必将每个数组元素都保留为一个单元。 就是说,只要换行符在任何对象中都不是有效字符, 您仍然可以在单独的行中输出每个对象。 当然,在这种假设下,您可以使用4中的命令来

  • 问题内容: 我有一个Json String,我想将其转换为Java中的数组。 就我所知,我什至不确定是否必须先创建一个对象。 我需要做的eventuallay是将其附加到android应用程序中的ArrayAdapter上。 谢谢 问题答案: 像这样: