json 序列化的两种方式

JavaScriptSerializer Serializer = new JavaScriptSerializer();
ResultData<EUserData> resultModel_Login = Serializer.Deserialize<ResultData<EUserData>>(result_Login);

/// <summary>
/// Get方法
/// </summary>
/// <param name="serverUrl">url地址</param>
/// <param name="postData">数据 格式为"aa=xx&bb=xxx"</param>
/// <returns>请求结果</returns>
public static string HttpGetConnectToServer(string serverUrl, string postData)
{
//创建请求
var request = (HttpWebRequest)HttpWebRequest.Create(serverUrl + "?" + postData);
request.Method = "GET";
//设置上传服务的数据格式
request.ContentType = "application/x-www-form-urlencoded";
//请求的身份验证信息为默认
request.Credentials = CredentialCache.DefaultCredentials;
//请求超时时间
request.Timeout = 10000;
//读取返回消息
string res = "";
try
{
var response = (HttpWebResponse)request.GetResponse();
var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
res = reader.ReadToEnd();
reader.Close();
}
catch (Exception ex)
{

}
return res;
}

/// <summary>
/// post方法
/// </summary>
/// <param name="postUrl">url地址</param>
/// <param name="paramData">提交的ParamData对象</param>
/// <returns></returns>
public static string PostWebRequest<T>(string postUrl, T paramData)
{
string ret = string.Empty;
try
{
string str_Tem = JsonSerializer(paramData);//将对象转成json串
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(str_Tem);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webReq.Method = "POST";
webReq.ContentType = " application/json; charset=utf-8";
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close();
}
catch (Exception ex)
{

}
return ret;
}

/// <summary>
/// C#反序列化JSON
/// </summary>
/// <typeparam name="T">返回类型</typeparam>
/// <param name="jsonString">JSON字符串</param>
/// <returns></returns>
public static T JsonDeserialize<T>(string strJson)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson));
T objT = (T)ser.ReadObject(ms);
ms.Close();
return objT;
}

/// <summary>
/// C#序列化JSON
/// </summary>
/// <typeparam name="T">序列化对象类型</typeparam>
/// <param name="objT">序列化对象</param>
/// <returns></returns>
public static string JsonSerializer<T>(T objT)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, objT);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return jsonString;
}
时间: 2024-10-12 17:34:20

json 序列化的两种方式的相关文章

向服务器传json数据的两种方式

接触到了向服务器传JSON数据,那么怎么把参数以JSON的形式,传到服务器呢.下面来说说,json字符串的得到方法.一共有两种方式来得到Json的字符串.当然,向服务器上传,不能传字符串,是要转成NSData的,也就是二进制的形式.这个在此不讨论,只说,怎么得到json的字符串. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法,是把要传的参数

【代码笔记】向服务器传JSON数据的两种方式

一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法,是把要传的参数组合成一个数组,然后由JSONKit把字典转为字符串 NSDictionary* jsonDic = [NSDictionary dictionaryWithObjectsAndKeys:@"李华",@"name",@"女&quo

Asp.net Web API 返回Json对象的两种方式

这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName\": \"" + fileName + "\"}"); HttpResponseMessage response = new HttpResponseMessage() { Content = content }; response.Content

iOS拼接json字符串的两种方式

两种json字符串拼接的方法如下: + (NSString *)UIUtilsFomateJsonWithDictionary:(NSDictionary *)dic { NSArray *keys = [dic allKeys]; NSString *string = [NSString string]; for (NSString *key in keys) { NSString *value = [dic objectForKey:key]; value = [NSString strin

Gson解析复杂JSON字符串的两种方式

JSON解析可以使用的库: JSONObject(源自Android官方). Gson(源自Google). Jackson(第三方开源库). FastJSON(第三方开源库). 本文例子使用Google提供的Gson. 什么是JavaBean JavaBean实际上是一种特殊的Java类,是一种规范,经常用于封装数据.JavaBean遵循如下编程原则: 1.必须有一个public无参构造函数: 2.所有属性私有化private: 3.私有化的属性必须通过public的getter和setter

springMVC接受ajax提交表单,json数据的两种方式

作为一个初入互联网行业的小鑫鑫,在使用springMVC时发现一个好耍的东西,决定记下来,免得哪天忘了,哈哈 第一种 序列化表单,将表单数据序列化为json对象字符串 $("#submit").click(function (){ var form=$("form").serializeArray(); $.ajax({ url:"${pageContext.request.contextPath}/teacher/updateTeacher",

java 实现序列化的两种方式

序列化是把java对象以字节流的形式写入硬盘或传给网络中的其他计算机. 方式一:实现Serializable借口.该接口是一个空借口,仅用于标识该对象可以被序列化,以便jre对其做封装. 方式二:实现Externalizable借口.该接口继承自Serializable借口,添加了两个方法 writeExternal()/readExternal(),在writeExternal()方法中可以指定需要序列化的属性,实现部分序列化

MVC中返回json数据的两种方式

MVC里面如果直接将数据返回到前端页面,我们常用的方式就是用return view(): 那么我不想直接用razor语法,毕竟razor这玩意儿实在是太难记了,还不如写ajax对接来得舒服不是 那么我们可以这么做 1.定义ActionResult,返回json,标记属性可以采用HttpPost,也可以是用HttpGet,按自己的需求来使用 public ActionResult UpdateDownloadInJson(string deviceNames,string programNames

Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口

方法一: 实现Serializable接口,这个我就不多说了 方法二: 实现Externalizable接口: 例子: package demo; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; public class XXS implements Externalizable{ private String n