C# 解析包含数组的 json字符串

json 示例:

{
	"status":0,
	"message":"OK",
	"item":[
		{
			"id":54308113,
			"note_id":null,
			"call_start_at":"2018-04-18 13:07:02"
		},
		{
			"id":54308196,
			"note_id":null,
			"call_start_at":"2018-04-18 13:07:30"
		}
	],
	"size":2,
	"total":1,
	"total_pages":2
}

试了 fastjson,但是对于json中的数组item解析不了,会报错。然后换成了Newtonsoft.Json ,解决,数组转成了List。

引用Newtonsoft.Json.dll

using Newtonsoft.Json;
using System.IO;
using System.Collections.Generic;
private void JsonToList(string jsonstr)
     {
            byte[] array = Encoding.UTF8.GetBytes(jsonstr);
            MemoryStream stream = new MemoryStream(array);             //convert stream 2 string      
            StreamReader streamReader = new StreamReader(stream);
            JsonSerializer serializer = new JsonSerializer();
            callLogMessage p1 = (callLogMessage)serializer.Deserialize(new JsonTextReader(streamReader), typeof(callLogMessage));
            streamReader.Dispose();
            List<calllog> calllogs = p1.item.ToList<calllog>(); //数组转成List
     }

json 对应 callLogMessage实体类。

public class callLogMessage
    {
        public int status;
        public string message;
        public calllog[] item;
        public int size;
        public int total;
        public int total_pages;
    }

json 中的数组对应 List<calllog>

public class calllog
    {
        public string id { get; set; }
        public string note_id { get; set; }
        public string call_start_at { get; set; }
    }



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值