如题
我在服务端用了json发到客户端
如何解析!!!!
我在服务端用了json发到客户端
如何解析!!!!
解决方案 »
- WebBrowser 遇到 javascript:void(0) 页面无响应
- 贪吃蛇游戏教程
- 完成自动点击功能
- C# WinForm DataGridView显示中文HeaderText的问题
- 怎么解决DataGridView的InvalidOperationException?
- 如何把数据库里的nuber型的数字在datagrid上用八进制显示出来?
- 哪位高手用c#写过com组件并成功用vc6调用成功过的????
- windows窗口内响应Ctrl+A组合键触发按钮点击事件问题
- 现在可以在网上免费下载C#的编译器吗?
- to:hgknight(江雨.net) 關於直接显示TreeView的简单问题!!
- WPF,这个滚动条为什么不出现呢?
- winform项目在XP系统下运行有问题!
* 作者:Jina Cookies
*/using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Data;
using System.Collections;namespace IocUI
{
public class JsonHelper
{
/// <summary>
/// Json2s the obj.
/// </summary>
/// <param name="json">The json.</param>
/// <param name="t">The t.</param>
/// <returns></returns>
public static Object Json2Obj(String json, Type t)
{
try
{
return JsonConvert.DeserializeObject(json, t);
}
catch(Exception ex)
{
return default(Object);
}
} /// <summary>
/// Json2s the obj.
/// </summary>
/// <param name="json">The json.</param>
/// <param name="t">The t.</param>
/// <returns></returns>
public static TEntity Json2Obj<TEntity>(String json)
{
try
{
return JsonConvert.DeserializeObject<TEntity>(json);
}
catch
{
return default(TEntity);
}
} /// <summary>
/// Json2s the obj.
/// 只支持单级的Json字符串,不支持复杂的。
/// </summary>
/// <param name="p_json">The p_json.</param>
/// <param name="p_key">The p_data_index.</param>
/// <returns></returns>
public static string Json2Obj(string p_json, string p_key)
{
try
{
var m_json = JArray.Parse(p_json); return m_json.FirstOrDefault()[p_key].ToString();
}
catch
{
return default(string);
}
} /// <summary>
/// Json2s the obj.
/// </summary>
/// <param name="p_json">The p_json.</param>
/// <returns></returns>
public static IList<string> Json2List(string p_json, string p_col_name)
{
try
{
var m_json = JArray.Parse(p_json).ToList();
var m_list = new List<string>();
foreach (var item in m_json)
{
m_list.Add(item[p_col_name].ToString());
}
return m_list;
}
catch
{
return default(IList<string>);
}
} /// <summary>
/// Obj2s the json.
/// </summary>
/// <typeparam name="TEntity">The type of the entity.</typeparam>
/// <param name="data">The data.</param>
/// <returns></returns>
public static string Obj2Json<TEntity>(TEntity data)
{
try
{
return JsonConvert.SerializeObject(data);
}
catch
{
return default(string);
}
} /// <summary>
/// Obj2s the json.
/// </summary>
/// <typeparam name="TEntity">The type of the entity.</typeparam>
/// <param name="data">The data.</param>
/// <returns></returns>
public static string Obj2Json<TEntity>(IList<TEntity> data)
{
try
{
return JsonConvert.SerializeObject(data);
}
catch
{
return default(string);
}
} /// <summary>
///
/// </summary>
/// <param name="p_tabName"></param>
/// <param name="p_jsonData"></param>
/// <returns></returns>
public static string GetJsonDataBySimplify(string p_simplify_jsonData)
{
try
{
if (!string.IsNullOrEmpty(p_simplify_jsonData))
{ var m_list = JObject.Parse(p_simplify_jsonData); if (m_list["fields"] != null)
{
//得到字段
var m_fields = JsonConvert.DeserializeObject(m_list["fields"].ToString(), typeof(List<string>)) as List<string>; //得到数据列表
var m_data_list = JArray.Parse(m_list["data"].ToString()).ToList(); var m_str = ""; //生成json字符串
foreach (var item in m_data_list)
{
m_str += "{";
var data_item_list = JsonConvert.DeserializeObject(item.ToString(), typeof(List<string>)) as List<string>;
for (var i = 0; i < data_item_list.Count; i++)
{
if (!string.IsNullOrEmpty(data_item_list[i]))
{
m_str += string.Format("\"{0}\":\"{1}\",", m_fields[i], item[i].ToString().Replace("\"", "\\\""));
}
else
{
m_str += string.Format("\"{0}\":null,", m_fields[i]);
}
}
m_str = m_str.Remove(m_str.Length - 1, 1);
m_str += "},";
}
m_str = m_str.Remove(m_str.Length - 1, 1);
return string.Format("[{0}]", m_str);
}
return default(string);
} return default(string);
}
catch
{
return default(string);
}
} /// <summary>
/// Json 转成Datatable
/// </summary>
/// <param name="p_json"></param>
/// <returns></returns>
public static DataTable Json2DataTable(string p_json)
{
if(string.IsNullOrEmpty(p_json))return new DataTable();
return (DataTable)JsonConvert.DeserializeObject(p_json,typeof(DataTable));
}
/// <summary>
/// Json 转成DataSet
/// </summary>
/// <param name="p_json"></param>
/// <returns></returns>
public static DataSet Json2DataSet(string p_json)
{
var m_ds=new DataSet();
m_ds.Tables.Add(Json2DataTable(p_json));
return m_ds;
}
}
/*
IList<Usercenter> lst = new List<Usercenter>();
for (int i = 0; i < 100; i++)
{
Usercenter user = new Usercenter();
user.Id = i;
user.Pwd = i.ToString();
user.Re = i.ToString();
user.SysRight = 256;
user.UserId = i.ToString();
user.UserName = i.ToString();
lst.Add(user);
}
DataContractJsonSerializer json = new DataContractJsonSerializer(lst.GetType());
//序列化
MemoryStream ms = new MemoryStream();
json.WriteObject(ms, lst);
string txt = Encoding.UTF8.GetString(ms.ToArray()); //反序列化
MemoryStream mss = new MemoryStream(Encoding.UTF8.GetBytes(txt));
DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(IList<Usercenter>));
IList<Usercenter> l = js.ReadObject(mss) as IList<Usercenter>;
int j = 0;
foreach (Usercenter usr in l )
{
j++;
MessageBox.Show(string.Concat(usr.Id, usr.Pwd, usr.Re, usr.SysRight, usr.UserId, usr.UserName));
if(j>3)break;
}
*/
}
是不是引用Win8的第三方类库了
using Newtonsoft.Json.Linq
批这两个是官方的,你网上搜索去,
using System.Runtime.Serialization.Json
System.Runtime.Serialization.dll
我给你个下载地址,http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=json&DownloadId=668468&FileTime=130113389453430000&Build=20626