冯海滨博客

当前位置:   网站首页 >> C#

C#解析json文件的方法

--------------------广告位招租--------------------

使用JsonSerializer读写对象(基于JsonWriter与JsonReader): 

数组型数据

string jsonArrayText1 = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]";
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
string ja1a = ja[1]["a"].ToString();
//或者
JObject o = (JObject)ja[1];
string oa = o["a"].ToString();


嵌套格式

string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);string zone = jo["beijing"]["zone"].ToString();string zone_en = jo["beijing"]["zone_en"].ToString();


自定义类Project

Project p = new Project() { Input = "stone", Output = "gold" };
JsonSerializer serializer = new JsonSerializer();
StringWriter sw = new StringWriter();
serializer.Serialize(new JsonTextWriter(sw), p);
Console.WriteLine(sw.GetStringBuilder().ToString());

StringReader sr = new StringReader(@"{""Input"":""stone"", ""Output"":""gold""}");
Project p1 = (Project)serializer.Deserialize(new JsonTextReader(sr), typeof(Project));
Console.WriteLine(p1.Input + "=>" + p1.Output);


上面的代码都是基于下面这个Project类定义:

class Project
{
    public string Input { get; set; }
    public string Output { get; set; }
}

此外,如果上面的JsonTextReader等类编译不过的话,说明是我们自己修改过的类,换成你们自己的相关类就可以了,不影响使用。


--------------------广告位招租--------------------

网友评论1

  1. 蜗牛博客2017-03-25 23:49:02 回复

    博主,我的网站也主要是关于站长,编程之类的。可以换个友情链接吗?

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项