zoukankan      html  css  js  c++  java
  • 借鉴微软官方示例里Json和String的转换

    在类的定义里加上转换过程

    Json->string

    public User(string jsonString) : this()
    {
        JsonObject jsonObject = JsonObject.Parse(jsonString);
        Id = jsonObject.GetNamedString(idKey, "");
    
        IJsonValue phoneJsonValue = jsonObject.GetNamedValue(phoneKey);
        if (phoneJsonValue.ValueType == JsonValueType.Null)
        {
            Phone = null;
        }
        else
        {
            Phone = phoneJsonValue.GetString();
        }
    
        Name = jsonObject.GetNamedString(nameKey, "");
        Timezone = jsonObject.GetNamedNumber(timezoneKey, 0);
        Verified = jsonObject.GetNamedBoolean(verifiedKey, false);
    
        foreach (IJsonValue jsonValue in jsonObject.GetNamedArray(educationKey, new JsonArray()))
        {
            if (jsonValue.ValueType == JsonValueType.Object)
            {
                Education.Add(new School(jsonValue.GetObject()));
            }
        }
    }
    

    但是会出错,不能生成Json变量,检查发现是string格式问题,需要以大括号开头

    test = test.Replace("200 OK", "");
    

    把开头的状态字段去掉,还是不行,不能正常识别里边字段,应该还是格式问题,是数组形式。
    继续调整 / 换成旧的模式

    string->Json

    public string Stringify()
    {
        JsonArray jsonArray = new JsonArray();
        foreach (School school in Education)
        {
            jsonArray.Add(school.ToJsonObject());
        }
    
        JsonObject jsonObject = new JsonObject();
        jsonObject[idKey] = JsonValue.CreateStringValue(Id);
    
        // Treating a blank string as null
        if (String.IsNullOrEmpty(Phone))
        {
            jsonObject[phoneKey] = JsonValue.CreateNullValue();
        }
        else
        {
            jsonObject[phoneKey] = JsonValue.CreateStringValue(Phone);
        }
    
        jsonObject[nameKey] = JsonValue.CreateStringValue(Name);
        jsonObject[educationKey] = jsonArray;
        jsonObject[timezoneKey] = JsonValue.CreateNumberValue(Timezone);
        jsonObject[verifiedKey] = JsonValue.CreateBooleanValue(Verified);
    
        return jsonObject.Stringify();
    }
    
  • 相关阅读:
    python全栈开发day54-mysql库操作、表操作、数据类型、完整性约束
    CentOS7.5安装nodejs 转
    python全栈开发day53-mysql
    python全栈开发day52-bootstrap的运用
    python全栈开发day51-jquery插件、@media媒体查询、移动端单位、Bootstrap框架
    机器学习之交叉验证和网格搜索
    机器学习之混淆矩阵
    机器学习之朴素贝叶斯算法
    机器学习之TF-IDF
    机器学习之K-近邻算法
  • 原文地址:https://www.cnblogs.com/woodytian/p/4837499.html
Copyright © 2011-2022 走看看