如何在Swift中创建嵌入式JSON对象并返回String?

时间:2016-04-27 09:57:59

标签: ios json swift

我的code.swift如下:

public class Test {

    var testA: String = ""                
    var testB: String = ""                 

    let T_testA : String = "testA"
    let T_testB : String = "testB"

    init(testA: String, testB: String) {
        self.testA = testA
        self.testB = testB
    }

    func toString() -> String? {
        let jsonDic : [String: AnyObject] = [
            T_testA: testA,
            T_testB: testB,
        ]
        do {
            let jsonObject = try NSJSONSerialization.dataWithJSONObject( jsonDic, options: NSJSONWritingOptions.PrettyPrinted)

            return String(data: jsonObject, encoding: NSUTF8StringEncoding)
        } catch {
            return nil
        }
    }
}

在我的Tests.swift中

func testPerformanceExample() {

    let result1 = Test(testA: {"major": 1, "minor": 2}, testB: "http://google.com")

    let result2 = result2.toString()!
    print("result2=\n\(result2)")
}

我读过类似的案例Here,这似乎是一个不同的问题!

是否可以一起创建嵌入式json对象并将其作为String返回?

1 个答案:

答案 0 :(得分:1)

如果您想从现有代码中获取内容,请正确使用:

public class CustomScrollView extends ScrollView {


public CustomScrollView(Context context) {
    super(context);
}

public CustomScrollView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int size = 0;
    int width = getMeasuredWidth();
    int height = getMeasuredHeight();

    if (width > height) {
        size = height;
    } else {
        size = width;
    }
    setMeasuredDimension(size, size);
}
}

但实际上我建议你研究另一种方法:制作一个Swift字典,将这个字典转换为JSON数据,然后将这些数据转换为字符串。然后你将获得一个正确的JSON字符串,而不会有写错误字符串的风险。