首定定义实体集地对象
/// <summary>
/// 实体集
/// </summary>
public class Entity
{
public class User
{
public string name { set; get; }
public string age { set; get; }
public List<Add> addr { set; get; }
}
public class Add
{
public string city { set; get; }
public string province { set; get; }
}
}
1.平行二维表反序列
string jsonData = "[{\"name\":\"张三\",\"age\":23,\"addr\":\"--------\"},{\"name\":\"张三2\",\"age\":\"23-2\",\"addr\":\"---2-----\"}]";
List<Entity.User> _list = JsonConvert.DeserializeObject<List<Entity.User>>(jsonData);
foreach (var c in _list)
{
if (sb.ToString().Length > 0)
sb.Append("#");
sb.Append(c.name + ";" + c.age + ";" + c.addr);
}
2.平行二维表序列
List<Entity.User> lit_User = new List<Entity.User>();
for (int i = 1; i < 3; i++)
{
Entity.User user = new Entity.User();
user.name = "paida_" + i.ToString();
user.age = i.ToString();
lit_User.Add(user);
}
sb.Append(JsonConvert.SerializeObject(lit_User));
3.多层二维表反序列
string jsonData = "{\"name\":\"张三\",\"age\":\"23\",\"addr\":[{\"city\":\"广州\",\"province\":\"广东省\"},{\"city\":\"长沙\",\"province\":\"湖南省\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
for (int i = 0; i < jar.Count; i++)
{
JObject j = JObject.Parse(jar[i].ToString());
if (!string.IsNullOrEmpty(sb.ToString()))
sb.Append("#");
sb.Append(jsonObj["name"].ToString() + ";" + jsonObj["age"].ToString() + ";" + j["province"] + ";" + j["city"]);
}
4.多层二维表序列
List<Entity.User> lit_User = new List<Entity.User>();
for (int i = 1; i < 3; i++)
{
Entity.User user = new Entity.User();
user.name = "paida_" + i.ToString();
user.age = i.ToString();
for (int m = 0; m < 3; m++)
{
Entity.Add add = new Entity.Add();
add.province = "省份" + m.ToString();
add.city = "城市" + m.ToString();
user.addr.Add(add);
}
lit_User.Add(user);
}
sb.Append(JsonConvert.SerializeObject(lit_User));