如题 
我在服务端用了json发到客户端
如何解析!!!!

解决方案 »

  1.   

    jons有微软自带的类库,也有官方的类库,都可以解析啊
      

  2.   

    /*
     * 作者: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;
                }
                */
    }
      

  3.   

    在这里你写上json都可以查到微软自带的库
      

  4.   

    你的JsonConvert所属哪个命名空间啊 我这里找不到
    是不是引用Win8的第三方类库了
      

  5.   

    Newtonsoft.Json;
     using Newtonsoft.Json.Linq
    批这两个是官方的,你网上搜索去,
    using System.Runtime.Serialization.Json  
    System.Runtime.Serialization.dll
      

  6.   

    我在网上下载了一个 他告诉我是.netframework类库 不是.netCore类库啊
      

  7.   

    用 nuget 啊install-package Newtonsoft.Jsonhttp://www.nuget.org/packages/Newtonsoft.Json
      

  8.   

    楼主可真懒,楼上都给出方案了,而且代码都给你贴出来了。还在埋怨?您不适合做程序员,还是当老板比较好。
    我给你个下载地址,http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=json&DownloadId=668468&FileTime=130113389453430000&Build=20626
      

  9.   

    百度json工具,或者自己写解析工具,json的格式跟js的对象格式一模一样
      

  10.   

    谷歌一下好多的,newtonsoft.json或者用自带的解析