如何在iOS Swift中将JSON转换为String? [英] How to convert JSON to String in ios Swift?

查看:557
本文介绍了如何在iOS Swift中将JSON转换为String?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是下面的Json输出的代码:

Here is the code for the below Json output:

let params : [[String : AnyObject]]  = [["name" : "action", "value" : "pay" ],["name" : "cartJsonData" , "value" : ["total": 1,"rows":[["quantity": "1" ,"title":"Donation for SMSF India - General Fund","price":"1","itemId":"DN001","cost": "1","currency":"INR"]]]], ["name" : "center", "value" : "Chennai"], ["name" : "flatNumber", "value" : "503"], ["name" : "panNumber", "value" : ""], ["name" : "payWith"], ["name" : "reminderFrequency","value" : "Monthly"],  ["name" : "shipToAddr1"], ["name" : "shipToAddr2"], ["name" : "shipToCity"], ["name" : "shipToCountryName" , "value" : "India"], ["name" : "shipToEmail", "value" : "01034_186893@gmail.com"], ["name" : "shipToFirstName" , "value": "4480101010"], ["name" : "shipToLastName"], ["name" : "shipToPhone", "value" : "4480101010"], ["name" : "shipToState"], ["name" : "shipToZip"], ["name" : "userId", "value" : "null"], ["name" : "shipToCountry", "value" : "IN"]]

var jsonObject: NSData? = nil

do {
   jsonObject = try NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions())
   print(jsonObject) // This will print the below json. 
} 
catch{}

通过打印jsonObject,我得到了这个.

By printing jsonObject, I got this one.

[{"value":"pay","name":"action"},{"value":{"rows":[{ 价格":"1",数量":"1",成本":"1",货币":"INR", "itemId":"DN001","title":向SMSF印度捐款-普通基金" }],"total":1},"name":"cartJsonData"},{"value":"Chennai", "name":"center"},{"value":"503","name":"flatNumber"},{ "value":","name":"panNumber"},{"name":"payWith"},{"value": 每月",名称":"reminderFrequency"},{名称":"shipToAddr1"},{ "name":"shipToAddr2"},{"name":"shipToCity"},{"value":"India", "name":"shipToCountryName"},{"value":"01034_186893@gmail.com", "name":"shipToEmail"},{"value":"4480101010","name": "shipToFirstName"},{"name":"shipToLastName"},{"value": "4480101010",名称":"shipToPhone"},{名称":"shipToState"},{ "name":"shipToZip"},{"value":"null","name":"userId"},{ "value":"IN","name":"shipToCountry"}]

[{ "value": "pay", "name": "action" }, { "value": { "rows": [{ "price": "1", "quantity": "1", "cost": "1", "currency": "INR", "itemId": "DN001", "title": "Donation for SMSF India - General Fund" }], "total": 1 }, "name": "cartJsonData" }, { "value": "Chennai", "name": "center" }, { "value": "503", "name": "flatNumber" }, { "value": "", "name": "panNumber" }, { "name": "payWith" }, { "value": "Monthly", "name": "reminderFrequency" }, { "name": "shipToAddr1" }, { "name": "shipToAddr2" }, { "name": "shipToCity" }, { "value": "India", "name": "shipToCountryName" }, { "value": "01034_186893@gmail.com", "name": "shipToEmail" }, { "value": "4480101010", "name": "shipToFirstName" }, { "name": "shipToLastName" }, { "value": "4480101010", "name": "shipToPhone" }, { "name": "shipToState" }, { "name": "shipToZip" }, { "value": "null", "name": "userId" }, { "value": "IN", "name": "shipToCountry" }]

我希望JSON采用以下格式.

And I want the JSON to be in the below format.

[{名称":操作",值":支付"},{名称":"cartJsonData", 价值": "{\"总计\":1,\行\":[{\" itemId \":\"DN002 \",\标题\":\为 SMSF印度-常规 基金\"\\"数量\:\" 100 \,\"货币\:\" INR \,\"价格\:\" 1 \,\"成本\:\" 100 \ "}]}" },{"name":"center","value":"Chennai"},{"name":"flatNumber", "value":"},{名称":"panNumber","value":"ASSDDBBDJD"},{ 名称":"payWith"},{名称":"reminderFrequency",值":每月" },{名称":"shipToAddr1"},{名称":"shipToAddr2"},{名称": "shipToCity"},{名称":"shipToCountryName",值":印度"},{ 名称":"shipToEmail",值":"Sudhakar@gmail.com"},{名称": "shipToFirstName","value":"Raju"},{"name":"shipToLastName"},{ 名称":"shipToPhone",值":"1234567890"},{名称": "shipToState"},{名称":"shipToZip"},{名称":"userId",值": "null"},{名称":"shipToCountry",值":"IN"}]

[{ "name": "action", "value": "pay" }, { "name": "cartJsonData", "value": "{\"total\":1,\"rows\":[{\"itemId\":\"DN002\",\"title\":\"Donation for SMSF India - General Fund\",\"quantity\":\"100\",\"currency\":\"INR\",\"price\":\"1\",\"cost\":\"100\"}]}" }, { "name": "center", "value": "Chennai" }, { "name": "flatNumber", "value": " " }, { "name": "panNumber", "value": "ASSDDBBDJD" }, { "name": "payWith" }, { "name": "reminderFrequency", "value": "Monthly" }, { "name": "shipToAddr1" }, { "name": "shipToAddr2" }, { "name": "shipToCity" }, { "name": "shipToCountryName", "value": "India" }, { "name": "shipToEmail", "value": "Sudhakar@gmail.com" }, { "name": "shipToFirstName", "value": "Raju" }, { "name": "shipToLastName" }, { "name": "shipToPhone", "value": "1234567890" }, { "name": "shipToState" }, { "name": "shipToZip" }, { "name": "userId", "value": "null" }, { "name": "shipToCountry", "value": "IN" }]

该怎么办?仅需要更改cartJsonData中的值.有人可以帮我解决这个问题吗?

How can it be done? Only the value in cartJsonData needs to be changed. Can someone help me on this to solve it?

推荐答案

尝试一下.

func jsonToString(json: AnyObject){
        do {
          let data1 =  try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted) // first of all convert json to the data
            let convertedString = String(data: data1, encoding: NSUTF8StringEncoding) // the data will be converted to the string
            print(convertedString) // <-- here is ur string  

        } catch let myJSONError {
            print(myJSONError)
        }

    }

这篇关于如何在iOS Swift中将JSON转换为String?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆