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

跪求高手帮忙解析JSON,

有一字符串,JSON格式


string jsonStr = "{'medicalInfo':[
{'medicalName':'强力定眩片(糖衣)','medicalCode':'29658','tradeName':'无','productSpec':'0.35g×60片/盒','medicalUnit':'无','manufacture':'陕西汉王药业','sourceType':'3','retailPrice':'0'},
{"medicalName":"丙酸氯倍他索软膏","medicalCode":"25935","tradeName":"无","productSpec":"10g:2mg(0.02%)×1支/支","medicalUnit":"无","manufacture":"安徽新和成","sourceType":"3","retailPrice":"0"}
]}";

自定义类
  public class medicalInfo
        {
            public string medicalName { get; set; }  
            public string medicalCode { get; set; }
            public string tradeName { get; set; }
            public string productSpec { get; set; }
            public string medicalUnit { get; set; }
            public string manufacture { get; set; }
            public string sourceType { get; set; }
            public string retailPrice { get; set; }
        }

打算用Newtonsoft.Json.dll解析

写法如下
            JavaScriptSerializer js = new JavaScriptSerializer();
            medicalInfo list = js.Deserialize<medicalInfo>(jsonStr);
可是list为空,请各位高手指点一二

--------------------编程问答--------------------

    public class medicalInfo
    {
        public string medicalName { get; set; }
        public string medicalCode { get; set; }
        public string tradeName { get; set; }
        public string productSpec { get; set; }
        public string medicalUnit { get; set; }
        public string manufacture { get; set; }
        public string sourceType { get; set; }
        public string retailPrice { get; set; }
    }
    public class medicalInfoArr
    {
        public medicalInfo[] medicalInfo { get; set; }
    }

string jsonStr = @"{'medicalInfo':[
{'medicalName':'强力定眩片(糖衣)','medicalCode':'29658','tradeName':'无','productSpec':'0.35g×60片/盒','medicalUnit':'无','manufacture':'陕西汉王药业','sourceType':'3','retailPrice':'0'},
{""medicalName"":""丙酸氯倍他索软膏"",""medicalCode"":""25935"",""tradeName"":""无"",""productSpec"":""10g:2mg(0.02%)×1支/支"",""medicalUnit"":""无"",""manufacture"":""安徽新和成"",""sourceType"":""3"",""retailPrice"":""0""}
]}";
            medicalInfoArr arr = JavaScriptConvert.DeserializeObject<medicalInfoArr>(jsonStr);
            foreach (medicalInfo m in arr.medicalInfo)
            {
                Console.WriteLine("{0} {1} {2}\r\n", m.medicalName, m.medicalCode, m.tradeName);
            }
--------------------编程问答--------------------
引用楼主  的回复:
medicalInfo list = js.Deserialize<medicalInfo>(jsonStr);


medicalInfo[] list = js.Deserialize<medicalInfo[]>(jsonStr); --------------------编程问答--------------------
using System.IO;

using System.Web.Script.Serialization;

using System.Runtime.Serialization.Json;

public static List<T> JSONStringToList<T>(this string JsonStr)

    {

        JavaScriptSerializer Serializer = new JavaScriptSerializer();

        List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);

        return objs;

    }

 

    public static T Deserialize<T>(string json)

    {

        T obj = Activator.CreateInstance<T>();

        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))

        {

            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());

            return (T)serializer.ReadObject(ms);

        }

}

--------------------编程问答--------------------
引用 2 楼  的回复:
引用楼主 的回复:
medicalInfo list = js.Deserialize<medicalInfo>(jsonStr);

medicalInfo[] list = js.Deserialize<medicalInfo[]>(jsonStr);

直接命中要害. --------------------编程问答--------------------
引用 2 楼  的回复:
引用楼主 的回复:
medicalInfo list = js.Deserialize<medicalInfo>(jsonStr);

medicalInfo[] list = js.Deserialize<medicalInfo[]>(jsonStr);




报‘没有为类型“demo.Form1+medicalInfo[]”定义无参数的构造函数。’的错,求大哥解答一下 --------------------编程问答--------------------
引用 4 楼  的回复:
引用 2 楼 的回复:
引用楼主 的回复:
medicalInfo list = js.Deserialize<medicalInfo>(jsonStr);

medicalInfo[] list = js.Deserialize<medicalInfo[]>(jsonStr);

直接命中要害.




报‘没有为类型“demo.Form1+medicalInfo[]”定义无参数的构造函数。’的错,求大哥解答一下 --------------------编程问答-------------------- 哥们,这问题解决了吗?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,