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

怎么循环输出json里的信息?

{"trade_fullinfo_get_response":{"trade":{"buyer":"abc","payment":"169.00","nick":"test专营店","tid":123}}}
{"trade_fullinfo_get_response":{"trade":{"buyer":"abdc","payment":"1629.00","nick":"tes1t专营店","tid":1243}}}
{"trade_fullinfo_get_response":{"trade":{"buyer":"abec","payment":"1639.00","nick":"tes2t专营店","tid":1523}}}
{"trade_fullinfo_get_response":{"trade":{"buyer":"abfc","payment":"1649.00","nick":"tes3t专营店","tid":1623}}}

这样的一串json

在asp.net 里 ,怎么样才能得到 buyer里的信息?也就是 abc,abdc,abec,abfc
--------------------编程问答-------------------- 反序列化为Ilist<> 再循环获取。 --------------------编程问答--------------------
引用 1 楼  的回复:
反序列化为Ilist<> 再循环获取。
能说说具体怎么弄吗 --------------------编程问答--------------------

public class Model
{
    public PayModel trade_fullinfo_get_response { get;set; }
}

public class PayModel
{
    public Entity trade { get;set; }
}

public class Entity
{
    public string buyer { get;set; }
    public string payment { get;set; }
    public string nick { get;set; }
    public string tid { get;set; }
}

List<Model> list = Json反序列化对象;
//通过相关类读取list即可
--------------------编程问答-------------------- 我试了,只能对
[{"trade_fullinfo_get_response":{"trade":{"buyer":"abc","payment":"169.00","nick":"test专营店","tid":123}}},[{"trade_fullinfo_get_response":{"trade":{"buyer":"abc","payment":"169.00","nick":"test专营店","tid":123}}}]这样的读取,不能读取上面的

{"trade_fullinfo_get_response":{"trade":{"buyer":"abc","payment":"169.00","nick":"test专营店","tid":123}}}
{"trade_fullinfo_get_response":{"trade":{"buyer":"abdc","payment":"1629.00","nick":"tes1t专营店","tid":1243}}}
{"trade_fullinfo_get_response":{"trade":{"buyer":"abec","payment":"1639.00","nick":"tes2t专营店","tid":1523}}}
{"trade_fullinfo_get_response":{"trade":{"buyer":"abfc","payment":"1649.00","nick":"tes3t专营店","tid":1623}}}

说是格式不对 --------------------编程问答-------------------- 正则:Regex reg=new Regex(@"""buyer"":""([^""]+?)""");

循环获取Groups[1].value --------------------编程问答-------------------- 使用LitJSON是一个.NET平台下处理JSON格式数据的类库,小巧、快速。它的源代码使用C#编写,可以通过任何.Net平台上的语言进行调用

下面是例子
String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemid’:1002,’itemname’:’hello2’}]}";              
//*** 读取JSON字符串中的数据 *******************************            
JsonData jd = JsonMapper.ToObject(str);          
String name = (String)jd["name"];  
long id = (long)jd["id"];            
JsonData jdItems = jd["items"];      
int itemCnt = jdItems.Count; 
// 数组 items 中项的数量 
foreach (JsonData item in jdItems)
// 遍历数组 items            
{int itemID = (int)item["itemid"];                
String itemName = (String)item["itemname"];        
}              

//*** 将JsonData转换为JSON字符串 ***************************          
--------------------编程问答--------------------
引用 4 楼  的回复:
我试了,只能对
[{"trade_fullinfo_get_response":{"trade":{"buyer":"abc","payment":"169.00","nick":"test专营店","tid":123}}},[{"trade_fullinfo_get_response":{"trade":{"buyer":"abc","payment":"169.00","nick":"te……


你根据是列表还是单个酌情处理啊~ --------------------编程问答--------------------   给你写个例子,你需要下载第三方引用Newtonsoft.Json.Net35.dll文件,去下载一个就可以,然后引用 


  private void button2_Click(object sender, EventArgs e)
        {
            Trade t = new Trade();
            t.buyer = "abdc";
            t.payment = "1629.00";
            t.nick = "tes1t专营店";
            t.tid = 1243;
            Trade_Model t_m = new Trade_Model();
            t_m.trade = t;
            Model m = new Model();
            m.trade_fullinfo_get_response = t_m;
            //序列化
            string s = MyJson.SerializeObject(m);
            //反序列化
            Model model = MyJson.Deserialize<Model>(s);
            textBox1.Text = s;

        }

        public class MyJson
        {

            /// <summary>
            /// 序列化方法
            /// </summary>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static string SerializeObject(object obj)
            {
                return JsonConvert.SerializeObject(obj);
            }
            /// <summary>
            /// 反序列化方法
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="value"></param>
            /// <returns></returns>
            public static T Deserialize<T>(string value)
            {
                try
                {
                    return JsonConvert.DeserializeObject<T>(value);
                }
                catch
                {
                    return default(T);
                }
            }
        }
        public class Model
        {
            public Trade_Model trade_fullinfo_get_response { get; set; }
        }
        public class Trade_Model
        {
            public Trade trade { get; set; }
        }

        public class Trade
        {
            public string buyer { get; set; }
            public string payment { get; set; }
            public string nick { get; set; }
            public int tid { get; set; }
        }
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,