MiniJSON的代码解析

public class JsonDeserialize
{
protected string url = “http://localhost:8080/AssetBundleData/Web/Singlea/”;
}

[csharp] view plaincopy
using UnityEngine;
using System.Collections.Generic;

public class ChinaJsonDeserialize : JsonDeserialize
{
private China _china;

public China china  
{  
    get   
    {  
        return _china;  
    }  
}  

public ChinaJsonDeserialize(string jsonData)  
{  
    _china = new China();  
    ParseJson(jsonData);  
}  

void ParseJson(string jsonData)  
{  
      
    if (string.IsNullOrEmpty(jsonData))  
    {  
        Debug.LogError("ChinaJson is null or empty");  
        return;  
    }   

    Dictionary<string, object> jsonObjects = MiniJSON.Json.Deserialize(jsonData) as Dictionary<string, object>;  
    _china.chinaName = jsonObjects["name"].ToString();  
    _china.province = new List<Province>();  

    List<object> provinceList = jsonObjects["province"] as List<object>;  

    foreach (var i in provinceList)  
    {  
        Dictionary<string, object> province = i as Dictionary<string, object>;  
        Province provinceObj = new Province();  
        provinceObj.provinceName = province["name"].ToString();  
        provinceObj.city = new List<City>();  

        Dictionary<string, object> citesDic = province["cities"] as Dictionary<string, object>;  

        List<object> childCitesList = citesDic["city"] as List<object>;  
        foreach (var childCity in childCitesList)  
        {  
            City city = new City();  
            city.cityName = childCity.ToString();  

            provinceObj.city.Add(city);  
        }  

        _china.province.Add(provinceObj);  
    }  
}  

}

public class China
{
public string chinaName;
public List province;
}

public class Province
{
public string provinceName;
public List city;
}

public class City
{
public string cityName;
}

[csharp] view plaincopy
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace MiniJSON {

public static class Json {  
    /// <summary>  
    /// Parses the string json into a value  
    /// </summary>  
    /// <param name="json">A JSON string.</param>  
    /// <returns>An List<object>, a Dictionary<string, object>, a double, an integer,a string, null, true, or false</returns>  
    public static object Deserialize(string json) {  
        // save the string for debug information  
        if (json == null) {  
            return null;  
        }  

        return Parser.Parse(json);  
    }  

    sealed class Parser : IDisposable {  
        const string WHITE_SPACE = " \t\n\r";  
        const string WORD_BREAK = " \t\n\r{}[],:\"";  

        enum TOKEN {  
            NONE,  
            CURLY_OPEN,  
            CURLY_CLOSE,  
            SQUARED_OPEN,  
            SQUARED_CLOSE,  
            COLON,  
            COMMA,  
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值