当前位置:编程学习 > C#/ASP.NET >>

.NET如何在后台读取JASON,求大神现身帮助

这是一个JASON格式的字符串
{Mobile:"15050471213",QueryResult:"True",ProvinceName:"江苏",ProvinceID:"16",CityName:"苏州",CityID:"226",AreaCode:"0512",CardType:"江苏移动全球通卡"}
在后台我怎么才能读取QueryResult,CityID这两个节点的值呢,求大神现身帮助。 .NET C# JASON --------------------编程问答-------------------- 建个类,直接读取吧。。。。 --------------------编程问答-------------------- 可以用JavaScriptSerializer类 (System.Web.Script.Serialization) --------------------编程问答--------------------

class Program
    {
        static void Main(string[] args)
        {
            String json = @"{Mobile:""15050471213"",QueryResult:""True"",ProvinceName:""江苏"",ProvinceID:""16"",CityName:""苏州"",CityID:""226"",AreaCode:""0512"",CardType:""江苏移动全球通卡""}";

            Card card = Newtonsoft.Json.JsonConvert.DeserializeObject<Card>(json);

            Console.WriteLine(String.Format("QueryResult:{0},CityID:{1}", card.QueryResult, card.CityID));

            Console.ReadKey();
        }
    }
    public class Card
    {
        public Boolean QueryResult { get; set; }
        public Int32 CityID { get; set; }
    }


需要添加对json.net的引用。 --------------------编程问答--------------------
引用 3 楼 XiaoCoder 的回复:

class Program
    {
        static void Main(string[] args)
        {
            String json = @"{Mobile:""15050471213"",QueryResult:""True"",ProvinceName:""江苏"",ProvinceID:""16"",CityName:""苏州"",CityID:""226"",AreaCode:""0512"",CardType:""江苏移动全球通卡""}";

            Card card = Newtonsoft.Json.JsonConvert.DeserializeObject<Card>(json);

            Console.WriteLine(String.Format("QueryResult:{0},CityID:{1}", card.QueryResult, card.CityID));

            Console.ReadKey();
        }
    }
    public class Card
    {
        public Boolean QueryResult { get; set; }
        public Int32 CityID { get; set; }
    }


需要添加对json.net的引用。
大神。我这个是在CS类中,该如何解决呢。 --------------------编程问答--------------------

using Newtonsoft.Json.Linq;

 string json="{Mobile:\"15050471213\",QueryResult:\"True\",ProvinceName:\"江苏\",ProvinceID:\"16\",CityName:\"苏州\",CityID:\"226\",AreaCode:\"0512\",CardType:\"江苏移动全球通卡\"}";
            var result = JObject.Parse(json);
            string s = result["QueryResult"].ToString();
            string t = result["CityID"].ToString();
--------------------编程问答-------------------- 果然是要大神来帮助的 ! --------------------编程问答--------------------
引用 5 楼 q107770540 的回复:

using Newtonsoft.Json.Linq;

 string json="{Mobile:\"15050471213\",QueryResult:\"True\",ProvinceName:\"江苏\",ProvinceID:\"16\",CityName:\"苏州\",CityID:\"226\",AreaCode:\"0512\",CardType:\"江苏移动全球通卡\"}";
            var result = JObject.Parse(json);
            string s = result["QueryResult"].ToString();
            string t = result["CityID"].ToString();

Newtonsoft这个命名控件在类中是引不到的,我说的类是三层中BUSSINESS中的类 --------------------编程问答--------------------
引用 5 楼 q107770540 的回复:

using Newtonsoft.Json.Linq;

 string json="{Mobile:\"15050471213\",QueryResult:\"True\",ProvinceName:\"江苏\",ProvinceID:\"16\",CityName:\"苏州\",CityID:\"226\",AreaCode:\"0512\",CardType:\"江苏移动全球通卡\"}";
            var result = JObject.Parse(json);
            string s = result["QueryResult"].ToString();
            string t = result["CityID"].ToString();


版主大神,不一定要解析,这要能取到这两个值就好,你看如何通过正则表达式获取到值。 --------------------编程问答--------------------
引用 7 楼 zodilkchen 的回复:
Quote: 引用 5 楼 q107770540 的回复:


using Newtonsoft.Json.Linq;

 string json="{Mobile:\"15050471213\",QueryResult:\"True\",ProvinceName:\"江苏\",ProvinceID:\"16\",CityName:\"苏州\",CityID:\"226\",AreaCode:\"0512\",CardType:\"江苏移动全球通卡\"}";
            var result = JObject.Parse(json);
            string s = result["QueryResult"].ToString();
            string t = result["CityID"].ToString();

Newtonsoft这个命名控件在类中是引不到的,我说的类是三层中BUSSINESS中的类

我的天啊, Newtonsoft是个第三方组件库,这点都没明白?
还是把基础概念弄熟了在玩三层吧,别一心向着代码工人的方向发展了。 --------------------编程问答-------------------- 引用不到,是因为你没有引用这个DLL:
Newtonsoft.Json.dll

正则可以来取到值,但是我不建议你这么做 --------------------编程问答--------------------
引用 9 楼 sj178220709 的回复:
Quote: 引用 7 楼 zodilkchen 的回复:

Quote: 引用 5 楼 q107770540 的回复:


using Newtonsoft.Json.Linq;

 string json="{Mobile:\"15050471213\",QueryResult:\"True\",ProvinceName:\"江苏\",ProvinceID:\"16\",CityName:\"苏州\",CityID:\"226\",AreaCode:\"0512\",CardType:\"江苏移动全球通卡\"}";
            var result = JObject.Parse(json);
            string s = result["QueryResult"].ToString();
            string t = result["CityID"].ToString();

Newtonsoft这个命名控件在类中是引不到的,我说的类是三层中BUSSINESS中的类

我的天啊, Newtonsoft是个第三方组件库,这点都没明白?
还是把基础概念弄熟了在玩三层吧,别一心向着代码工人的方向发展了。

我是在公司啊,我们的框架是技术支持组搭建的,是固定的,我们没权利引用第三方DLL的。 --------------------编程问答-------------------- framework 自带的类库页可以实现

/// <summary>   
        /// json字符串转换成对象   
        /// </summary>   
        /// <typeparam name="T"></typeparam>   
        /// <param name="json">要转换成对象的json字符串</param>   
        /// <returns></returns>   
        public static T DataContractJsonDeserialize<T>(string json)
        {
            System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
            T obj = default(T);
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
            {
                obj = (T)serializer.ReadObject(ms);
                ms.Close();
            }
            return obj;
        }
--------------------编程问答--------------------
引用 11 楼 zodilkchen 的回复:
Quote: 引用 9 楼 sj178220709 的回复:

Quote: 引用 7 楼 zodilkchen 的回复:

Quote: 引用 5 楼 q107770540 的回复:


using Newtonsoft.Json.Linq;

 string json="{Mobile:\"15050471213\",QueryResult:\"True\",ProvinceName:\"江苏\",ProvinceID:\"16\",CityName:\"苏州\",CityID:\"226\",AreaCode:\"0512\",CardType:\"江苏移动全球通卡\"}";
            var result = JObject.Parse(json);
            string s = result["QueryResult"].ToString();
            string t = result["CityID"].ToString();

Newtonsoft这个命名控件在类中是引不到的,我说的类是三层中BUSSINESS中的类

我的天啊, Newtonsoft是个第三方组件库,这点都没明白?
还是把基础概念弄熟了在玩三层吧,别一心向着代码工人的方向发展了。

我是在公司啊,我们的框架是技术支持组搭建的,是固定的,我们没权利引用第三方DLL的。

 误会了 ,如果是只需要那一个字段,自己写方法也行,没写过,对稳定性不好评估。
还是用别人专门的处理类比较爽啊
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,