MiniJSON的代码解析

这篇博客介绍了如何在Unity中使用MiniJSON库进行JSON解析。文章通过`JsonDeserialize`类展示了如何从URL获取数据,并定义了`China`, `Province` 和 `City` 类来结构化JSON数据,从而实现对中国省份和城市的解析。" 119962877,9430446,iOS AAC播放器实践:解析播放流程,"['iOS开发', '音频处理', 'AAC', '解码技术', '播放器']

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,  
            C
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值