如何将C#/.NET 将json字符串格式数据转换成对象?

 我来答
小孟6754
推荐于2019-08-14 · TA获得超过196个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:249万
展开全部
下个Newtonsoft.Json插件
引用 Newtonsoft.Json.dll

1、json字符串
string xxx = "{\"count\":\"1\",\"Product_Code\":\"14003949\",\"Product_Name\":\"聚丙烯树脂\",\"Product_Batch\":\"20140228D8103\",\"Certification_Code\":\"SCSH20140226-001-01\",\"Plate_Code\":\"L5E-89\",\"Grade\":\"合格品\",\"WarehouseIn_Num\":\"19120.0000000\",\"WarehouseIn_Weight\":\"478.000\",\"WarehouseIn_Confirm_Date\":\"2014-03-01\"}";

则直接转换为对象:

M_WarehouseInResult whh = JsonConvert.DeserializeObject<M_WarehouseInResult>(xxx);
2、如果为json数组(注意:最外是中括号)
string xxx = "[{\"count\":\"1\",\"Product_Code\":\"14003949\",\"Product_Name\":\"聚丙烯树脂\",\"Product_Batch\":\"20140228D8103\",\"Certification_Code\":\"SCSH20140226-001-01\",\"Plate_Code\":\"L5E-89\",\"Grade\":\"合格品\",\"WarehouseIn_Num\":\"19120.0000000\",\"WarehouseIn_Weight\":\"478.000\",\"WarehouseIn_Confirm_Date\":\"2014-03-01\"}]";

json数组转换为list

List<M_WarehouseInResult> whh = JsonConvert.DeserializeObject<List<M_WarehouseInResult>>(xxx);

附:
public class M_WarehouseInResult
{
public string count { get; set; }
public string Product_Code { get; set; }
public string Product_Name { get; set; }
public string Product_Batch { get; set; }
public string Certification_Code { get; set; }
public string Plate_Code { get; set; }
public string Grade { get; set; }
public string WarehouseIn_Num { get; set; }
public string WarehouseIn_Weight { get; set; }
public string WarehouseIn_Confirm_Date { get; set; }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
摇一摇1014ce
2018-05-28 · TA获得超过1281个赞
知道答主
回答量:11
采纳率:50%
帮助的人:3210
展开全部

首先你要按JSON的结构定义一个类,类中的变量要用属性的形式.


也就是public String XX{get;set;}这样.


然后可以参考我下面的代码,是在.NET 4.6下面写的,好像3.5和4.0要用另一个类.


1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


using System;


using System.Collections.Generic;


using System.IO;


using System.Linq;


using System.Runtime.Serialization.Json;


using System.Text;


using System.Web;



namespace XXX


{


public class clsJson


{


public static T Deserialize<T>(String s) where T : class


{


DataContractJsonSerializer dataContractJsonSerializer = new 

DataContractJsonSerializer(typeof(T));


MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(s));


return dataContractJsonSerializer.ReadObject(memoryStream) as T;


}


public static String Serialize<T>(T t) where T : class


{


DataContractJsonSerializer dataContractJsonSerializer = new 

DataContractJsonSerializer(typeof(T));


MemoryStream memoryStream = new MemoryStream();


dataContractJsonSerializer.WriteObject(memoryStream, t);


return Encoding.UTF8.GetString(memoryStream.ToArray(), 0, 

Convert.ToInt32(memoryStream.Length));


}


}


}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友31424
2018-03-09 · TA获得超过1.7万个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:8.2万
展开全部

json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢?

主要有一下几种

1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型

2使用开源的类库Newtonsoft.Json

3使用JavaScriptSerializer类 

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。

1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型

要写成通用的核心就是使用反射。

2使用开源的类库Newtonsoft.Json,很方便,.net的各个版本都有。

/// <summary>

/// 对象转为json

/// </summary>

/// <typeparam name="ObjType"></typeparam>

/// <param name="obj"></param>

/// <returns></returns>

public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class

{

string s = JsonConvert.SerializeObject(obj);

return s;

}

/// <summary>

/// json转为对象

/// </summary>

/// <typeparam name="ObjType"></typeparam>

/// <param name="JsonString"></param>

/// <returns></returns>

public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class

{          

ObjType s = JsonConvert.DeserializeObject<ObjType>(JsonString);

return s;

}

3JavaScriptSerializer类 ,使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化。需要添加程序集System.Web.Extensions.dll。

/// <summary>

/// 对象转为json

/// </summary>

/// <typeparam name="ObjType"></typeparam>

/// <param name="obj"></param>

/// <returns></returns>

public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class

{

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();

string s = jsonSerializer.Serialize(obj);

return s;

}  

/// <summary>

/// json转为对象

/// </summary>

/// <typeparam name="ObjType"></typeparam>

/// <param name="JsonString"></param>

/// <returns></returns>

public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class

{

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();

ObjType s = jsonSerializer.Deserialize<ObjType>(JsonString);

return s;

}

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。

具体可参考

阅读全文

1 0

上一篇 下一篇

暂无评论,我去发表~

C# 中对象与Json互转的方法整理笔记

 xymaco 2014-09-05 19:13 10474

最新C# Object与json互转

 chenjiazhu 2016-07-20 20:19 10494

C# JSON串和对象互相转换

 jn1705 2011-06-22 15:30 13791

C# json字符串转为对象及JavaScriptSerializer:

 ma15732625261 2016-08-07 17:56 1346

C# .Net 将Json转成.Net对象

 voodooer 2012-12-27 09:39 8481

使用FastJSON,将对象或数组和JSON串互转

 gaojinshan 2014-06-12 16:42 184270

如何将C#/.NET 将json字符串格式数据转换成对象

 killcwd 2015-03-27 11:13 2384

JSON.NET框架实现C#对象和JSON字符串的转换

 ful1021 2014-08-18 11:04 1658

 未登录

•首页

•人工智能

•移动开发

•物联网

•架构

•云计算/大数据

•互联网

•游戏开发

•运维

•数据库

•前端

•后端

•编程语言

•研发管理

•安全

•程序人生

•区块链

•音视频开发

•资讯

•计算机理论与基础

•综合

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式