Xml & Json

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
using System.Reflection;//反射的命名空间
using System;
using LitJson;

//Xml数据类
public class TmpBagData {
    public string id;
    public string name;

    

    public void Method() {
    
    }
}

//Json数据类
public class TmpTaskData {
    public string id;
    public string name;
}



/// <summary>
/// 解析XML的类????
///
/// </summary>
public class TestMethod : MonoBehaviour
{
    //获取一个文件
    public TextAsset config;

    //Json
    private List<TmpTaskData> taskList;

    void Start () {
        
        //////////////////////////////////////////
        
        //反射
        //type可以理解为元数据,包括对应类的所有成员信息
        //Type tmpType = typeof(TmpBagData);

        //反射获取当前类的所有字段,参数是筛选条件
        //FieldInfo[] fieldArr = tmpType.GetFields(/*BindingFlags*/);

        //反射获取当前类的所有属性,参数是筛选条件
        //PropertyInfo[] propertyArr = tmpType.GetProperties();

        //反射获取当前类的所有方法,参数是筛选条件
        //MethodInfo[] methodArr = tmpType.GetMethods();



        ///////////////////////////////////////////////////////////////

        //普通解析
        //存取数据的集合
        //list<tmpbagdata> list = new list<tmpbagdata>();

        
        //string data = config.text;

        //xmldocument doc = new xmldocument();
        //加载xml文件
        //doc.loadxml(data);
        //debug.log(data);
        //获取根节点/子节点的集合
        //xmlnodelist xnl =  doc.selectsinglenode("root").childnodes;

        //解析数据  将对象存入list集合
        //for (int i = 0; i < xnl.count; i++)
        //{
        //    list.add(new tmpbagdata()
        //    {
        //        id = ((xmlelement)xnl[i]).getattribute("id"),
        //        name = ((xmlelement)xnl[i]).getattribute("name"),
        //    });
        //}

        //for (int i = 0; i < list.count; i++)
        //{
        //     print(list[i].id + "    " + list[i].name);
        //}


        //////////////////////////////////////
        
         
            
        //Json解析

        //将json格式的字符串转换成一个字典,字典的格式根据json字符串的内容而定
        JsonData jd = JsonMapper.ToObject(config.text);
        //该JsonDate相当于后面的字典 =>  Dictionary<string,Dictionary<string,string>>

        //通过键找到这个集合再转成数据类型
        taskList = JsonMapper.ToObject<List<TmpTaskData>>(jd["task"].ToJson());
        //taskList[i].name;

        //jd["Task"][1]["des"];
        //根据键获得对应的字典集合,再根据集合的键(索引)获得对应的值

    }
    
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页