110,538
社区成员
发帖
与我相关
我的任务
分享
{"root":[
{"name":"名字1","id":1},
{"name":"名字2","id":2}
]}
public class CModel
{
public string name { get; set; }
public int id { get; set; }
}
public static string SerializeXmlNode(XmlNode node);
public static string SerializeXmlNode(XmlNode node, Formatting formatting);
public static string SerializeXmlNode(XmlNode node, Formatting formatting, bool omitRootObject);
楼主试试第3个方法看看,omitRootObject是省略根节点对象的意思using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Text.RegularExpressions;
namespace jsonTest
{
class Program
{
static void Main(string[] args)
{
//定义一个JSON字符串
string jsonText = "{\"root\":[{\"name\":\"名字1\",\"id\":1},{\"name\":\"名字2\",\"id\":2}]}";
//jsonText = "[{'name':'名字1','id':1},{'name':'名字2','id':2}]"; //这样的 json 也可以接受
jsonText = Regex.Replace(jsonText, @".*(\[.+\]).*", x => x.Groups[1].Value); //用正则去掉数组外的内容
//反序列化JSON字符串
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonText);
foreach (var o in ja) //o 是 JObject 类型
{
Console.WriteLine("id:{0} name:{1}", o["id"], o["name"]);
}
Console.ReadKey();
}
}
}
int start = json.IndexOf('[');
int end = json.LastIndexOf(']');
json = json.SubString(start, end - start + 1);
public class ObjList
{
public List<CModel> root { get; set; }
}
public class CModel
{
public string name { get; set; }
public int id { get; set; }
}