c# 将json格式的字符串转为c#对象
1、验证字符串是否为标准Json格式
打开度娘,搜json格式验证,就有网站可以验证json格式,如“http://www.bejson.com/”
将字符串复制进去验证。

2、安装Newtonsoft.Json
打开VS的工具-NuGet包管理-管理解决方案的NuGet程序包,搜索Newtonsoft.Json,安装

3、在项目中插入类项目

添加引用using Newtonsoft.Json;
点击VS-编辑-选择性粘贴-将JSON粘贴为类
(有些VS里面没有选择性粘贴是因为安装VS时没有安装ASP.NET和Web开发,重新安装上就行)

粘贴为类后VS根据JSON字符串自动获得如下代码(不同string转出来的格式不一样,具体参考自己的json字符串)
public class jsontoc
{
public class dataobject
{
public int status { get; set; }
public string message { get; set; }
public int count { get; set; }
public int total { get; set; }
public Meta[] meta { get; set; }
public object[][] data { get; set; }
}
public class Meta
{
public string field_name { get; set; }
public string data_type { get; set; }
public int size { get; set; }
}
public class loginobject
{
public int status { get; set; }
public string message { get; set; }
public string token { get; set; }
public DateTime expire_time { get; set; }
public string app_secret { get; set; }
public int db_access_mode { get; set; }
public bool check_sign { get; set; }
}
这样就获得了JSON转换的类。就差个引用了
4、引用
1、写方法
public jsontoc.dataobject Getdataobject(string JsonString)
{
jsontoc.dataobject dataobject;
try
{
dataobject = (jsontoc.dataobject)Newtonsoft.Json.JsonConvert.DeserializeObject(JsonString, typeof(jsontoc.dataobject));
return dataobject;
}
catch
{ return null; }
}
2、调用方法
jsontoc.dataobject js = Getdataobject(str);
获得对象后,随你使用了。比如要转成dataset
DataSet ds = new DataSet();
//根据json的数据自行判断
if (js.status==0 && js.meta != null && js.data != null)
{
//添加表
ds.Tables.Add("data");
//添加列
for (int i = 0; i < js.meta.Length; i++)
{ ds.Tables[0].Columns.Add(js.meta[i].field_name); }
//添加数据
for (int i = 0; i < js.data.Length; i++)
{ ds.Tables[0].Rows.Add(js.data[i]); }
//填充dataGridView1
dataGridView1.DataSource = ds.Tables[0];
}
本文详细介绍如何使用C#和Newtonsoft.Json库将JSON格式的字符串转换为C#对象,包括验证JSON格式、安装库、创建类及转换方法,最后演示如何将转换后的对象用于填充数据集。
386

被折叠的 条评论
为什么被折叠?



