微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Json和Xml的使用方法(新手向)

Xml和Json


Xml和Json的介绍大佬的博客里都介绍的很清楚 我就不多赘述了,直接讲使用方法 如果想了解他们的区别和优点可以看大佬写的博客

xml

xml配置文件

(编码格式是UTF-8 可以读取中文

 <女盆友>//根结点
   <小花>
     <年龄>
     18
     </年龄>
     <手机号>
     184545454
     </手机号>
     <星座>
     处女
     </星座>
   </小花>
   
    <富婆>
     <年龄>
     58
     </年龄>
     <手机号>
     188888888
     </手机号>
   </富婆>
   <星座>
     金牛
     </星座>
 </女盆友>

读取xml文件

以c#为例

///首先建立一个女盆友的类
public class MygirlFriend
{
  public string name;
  public List<Grildate>=new List<Grildate>();//女盆友名字的列表
}
///建立一个女盆友名字的类
public class Grildate
{
 public string name;
 public List<Date>=new List<Date>();//女盆友的信息(年龄,手机号)
}
///建立一个女盆友信息的类
public class Date
{
 public string Name;
 public string date;//女盆友的信息(年龄,手机号)
}
public static MygirlFriendmygril=new MygirlFriend();//申请一个静态的类来存放读取的数据
///开始读取xml文件
  public void readxml()
    {
        //首先要拿到xml文件 "xml文件的名字"
        TextAsset textasset = (TextAsset)Resources.Load("女盆友配置文件", typeof(TextAsset));
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(textasset.text);
        XmlNode root = xmlDoc.SelectSingleNode("女盆友");//获取配置文件根结点
        XmlNodeList nodeList_level1 = root.ChildNodes;//向下走一个节点(接下来的节点是年龄,手机号 他们同级)
                                                      //读取所有一级的节点
        foreach (XmlNode node1 in nodeList_level1)
        {
            Grildate grildate = new Grildate();
            //获取一级节点数据
            XmlElement element_1 = (XmlElement)node1;//将XmlNode强转为XMLElement
                                                     //获取名字
            grildate.name = element_1.Name;
            ///到现在一级的节点全部获取成功 下面开始获取二级节点的信息
            XmlNodeList nodeList_level2 = node1.ChildNodes;
            foreach (XmlNode node2 in nodeList_level2)
            {
                Date date = new Date();
                XmlElement element_2 = (XmlElement)node2;
                date.Name = node2.Name;//这个Name是节点名字 比如手机号 信息 要通过他来查找下面的内容
                date.date = node2.InnerText;//节点内的信息 如手机号xxxxx 年龄xx
                grildate.OneDate.Add(date);//将数据存入一级节点的列表
            }
            mygril.AllDate.Add(grildate);//数据全部存储完成
        }
    }

Json

Json的配置文件

使用Json时如果是unity就要去商店内下载LitJson 若为Vs编程则应该导入引用LitJson.dll

[
  {
    "编号":0,
    "姓名":"小花",
    "年龄":18,
    "星座":"处女"
  }
  ,
   {
    "编号":1,
    "姓名":"富婆",
    "年龄":58,
    "星座":"金牛"
  }
]

Json表

 public Class Jsondate
 {
   public int Id;
   public string Name;
   public string Xingzuo;
   public int Age;  
   public Show(int id,string name,string xz,int age)
   {
     this.Id=id;
     this.Name=name;
     this.Xingzuo=xz;
     this.Age=age;
   }
 }

读取Json

    private static JsonRead instance;
    public static JsonRead Instance
    {
        get
        {
            if (instance == null) instance = new JsonRead();
            return instance;
        }
    }
    private JsonData date;
    public List<Jsondate> jsonList;//存放Json读取到的数据 
    public void LoadJsonDate()
    {
        if (jsonList == null)
        {
            jsonList = new List<Jsondate>();
        }
        this.date = JsonMapper.ToObject(File.ReadAllText(Application.dataPath + "/Resources/Json.json", Encoding.GetEncoding("GB2312")));//加载配置文件
    }
    private void DecodeJson()
    {
        for (int index = 0; index < date.Count; index++)
        {
            int id = (int)this.date[index]["编号"];
            string name = this.date[index]["姓名"].ToString();
            int age = (int)this.date[index]["年龄"];
            string xz = this.date[index]["星座"].ToString();
            Jsondate date = new Jsondate(id, name, xz, age);
            this.jsonList.Add(date);//将数据存入 
        }
    }

注:使用LitJson应该导入LitJson插件或者导入LitJson.dll

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。