Json 解析 之 Litjson

9 篇文章 0 订阅

1.  使用Litjson方式

 "result": [
    {
      "name": "丹顶鹤",
      "ColorImagePath": "Image/D_1",
      "GrayImagePath": "Image/D_1"//D_0
    },
    {
      "name": "东方白鹳",
      "ColorImagePath": "Image/D_2",
      "GrayImagePath": "Image/D_2"
    }
]

 解析:

 

public void ReadJson(string jsonStr)
    {
        JsonData js = JsonMapper.ToObject(jsonStr);
        JsonData jsArray = js["result"];
        for (int i = 0; i < jsArray.Count; i++)
        {
            ItemData data = new ItemData();
            data.name = jsArray[i]["name"].ToString();
            data.ColorImagePath = jsArray[i]["ColorImagePath"].ToString();
            data.GrayImagePath = jsArray[i]["GrayImagePath"].ToString();
            itemDatas.Add(data);
        }
    }

 

 

2. 使用 Newtonsoft 方式

 

{
  "ID": [
    {
      "id": 1,
      "name": "销售经理"
    },
    {
      "id": 2,
      "name": "仓储经理"
    },
    {
      "id": 3,
      "name": "生产经理"
    },
    {
      "id": 4,
      "name": "采购经理"
    },
    {
      "id": 5,
      "name": "财务经理"
    }
  ],
  "Dialogue": [
    {
      "cameraID": 0,
      "data": [
        {
          "id": 1,
          "pos": 0,
          "data": "今天接到华晨童车商贸有限公司订购900辆豪华童车订单,需要和生产部确定生产计划和仓储部确认出货计划。",
          "pj": "销售订单",
          "mao": false,
          "fraction": 5,
          "bill": [
            {
              "key": "数量",
              "val": "900"
            },
            {
              "key": "含税单价",
              "val": "3680"
            }
           
          ]
        }
      ]
    },
    {
      "cameraID": 1,
      "data": [
        {
          "id": 1,
          "pos": 1,
          "data": "大家好,我们今天接到900辆豪华童车订单,需要4月10日出货,货够吗?",
          "pj": "",
          "mao": true,
          "fraction": 0,
          "bill": []
        },
        {
          "id": 2,
          "pos": 0,
          "data": "仓库还有100辆,再生产800辆就够了,生产有问题吗?",
          "pj": "",
          "mao": true,
          "fraction": 0,
          "bill": []
        },
        {
          "id": 3,
          "pos": 0,
          "data": "没问题!豪华型童车的凭据日产量为100辆,我马上填写生产排产计划表",
          "pj": "生产排产计划表",
          "mao": true,
          "fraction": 5,
          "bill": [
            {
              "key": "订单交货期",
              "val": "4月10日"
            },
            {
              "key": "订单数量",
              "val": "900"
            }
          ]
        }
      ]
    }
  ]
}

 解析

public class DialogueData
{
    public int cameraID;
    public List<PeopleData> peopleDatas = new List<PeopleData>();
    //public Dictionary<int, PeopleData> dicData = new Dictionary<int, PeopleData>();
}

[System.Serializable]
public class PeopleData
{
    public int id;
    public int pos;
    public string data;
    public string pjName;
    public bool mao;
    /// <summary>
    /// 分数
    /// </summary>
    public float fraction;

    public Dictionary<string, string> billDic = new Dictionary<string, string>();

    public bool SubFraction(int sub = 1)
    {
        if (fraction > 0)
        {
            fraction = fraction - sub;
            return true;
        }
        return false;
    }
}



 private Dictionary<int, string> idDic = new Dictionary<int, string>();
    private List<DialogueData> dialogueDatas = new List<DialogueData>();
 void InitData()
    {
        string json = File.ReadAllText(FilePath.StreamingAssetsPath + "Config.json");
        JObject jsonObj = JObject.Parse(json);
        JArray jlist = JArray.Parse(jsonObj["ID"].ToString());
        for (int i = 0; i < jlist.Count; i++)
        {
            idDic.Add(jlist[i]["id"].Value<int>(), jlist[i]["name"].Value<string>());
        }

        JArray jData = JArray.Parse(jsonObj["Dialogue"].ToString());
        for (int i = 0; i < jData.Count; i++)
        {
            DialogueData dialogueData = new DialogueData();
            dialogueData.cameraID = jData[i]["cameraID"].Value<int>();
            JArray jd = JArray.Parse(jData[i]["data"].ToString());

            for (int j = 0; j < jd.Count; j++)
            {
                PeopleData peopleData = new PeopleData();
                peopleData.id = jd[j]["id"].Value<int>();
                peopleData.pos = jd[j]["pos"].Value<int>();
                peopleData.data = jd[j]["data"].Value<string>();
                peopleData.pjName = jd[j]["pj"].Value<string>();
                peopleData.mao = jd[j]["mao"].Value<bool>();
                peopleData.fraction = jd[j]["fraction"].Value<float>();
                dialogueData.peopleDatas.Add(peopleData);
                JArray jdBill = JArray.Parse(jd[j]["bill"].ToString());
                for (int k = 0; k < jdBill.Count; k++)
                {
                    peopleData.billDic.Add(jdBill[k]["key"].Value<string>(), jdBill[k]["val"].Value<string>());
                }
            }
            dialogueDatas.Add(dialogueData);
        }
    }

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值