有如下一段字符
"skuMap":{
"灰色>L":{"canBookCount":905,"saleCount":91,"specId":"43b0e72e98731aed69e1f0cc7d64bf4d"},
"灰色>XL":{"canBookCount":929,"saleCount":70,"specId":"893746f5330dc3273d24aa1ac1a9a8b5"},
"灰色>XXL":{"canBookCount":942,"saleCount":57,"specId":"42d994cba0210528142a743d4069700f"},
"白色>L":{"canBookCount":862,"saleCount":136,"specId":"82114cbd2c10b5e97b01af1510807e2d"},
"白色>XL":{"canBookCount":881,"saleCount":118,"specId":"c45d8408137e34adf8e695250c42a2e9"},
"白色>XXL":{"canBookCount":917,"saleCount":82,"specId":"df78564262818d6eb0c428a37ab4a251"},
"蓝色>L":{"canBookCount":962,"saleCount":35,"specId":"e959b6ab7c355e403a3312c75bd3d5b4"},
"蓝色>XL":{"canBookCount":973,"saleCount":26,"specId":"27402e07efd89afa50733afa94cd6976"},
"蓝色>XXL":{"canBookCount":985,"saleCount":14,"specId":"358b6c3b52bf711ac8ecfe7513a4f3ad"}
},要求存入一个集合中,按如下结构存入list<T>集合颜色 尺码 库存 出售量 编号
----------------------------------------
灰色 L 905 91 43b0e72e98731aed69e1f0cc7d64bf4d
灰色 XL 929 70 893746f5330dc3273d24aa1ac1a9a8b5
JSONlist集合json map格式
"skuMap":{
"灰色>L":{"canBookCount":905,"saleCount":91,"specId":"43b0e72e98731aed69e1f0cc7d64bf4d"},
"灰色>XL":{"canBookCount":929,"saleCount":70,"specId":"893746f5330dc3273d24aa1ac1a9a8b5"},
"灰色>XXL":{"canBookCount":942,"saleCount":57,"specId":"42d994cba0210528142a743d4069700f"},
"白色>L":{"canBookCount":862,"saleCount":136,"specId":"82114cbd2c10b5e97b01af1510807e2d"},
"白色>XL":{"canBookCount":881,"saleCount":118,"specId":"c45d8408137e34adf8e695250c42a2e9"},
"白色>XXL":{"canBookCount":917,"saleCount":82,"specId":"df78564262818d6eb0c428a37ab4a251"},
"蓝色>L":{"canBookCount":962,"saleCount":35,"specId":"e959b6ab7c355e403a3312c75bd3d5b4"},
"蓝色>XL":{"canBookCount":973,"saleCount":26,"specId":"27402e07efd89afa50733afa94cd6976"},
"蓝色>XXL":{"canBookCount":985,"saleCount":14,"specId":"358b6c3b52bf711ac8ecfe7513a4f3ad"}
},要求存入一个集合中,按如下结构存入list<T>集合颜色 尺码 库存 出售量 编号
----------------------------------------
灰色 L 905 91 43b0e72e98731aed69e1f0cc7d64bf4d
灰色 XL 929 70 893746f5330dc3273d24aa1ac1a9a8b5
JSONlist集合json map格式
/// JSON格式字符转换为T类型的对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonStr"></param>
/// <returns></returns>
public static T ParseFormByJson<T>(string jsonStr)
{
T obj = Activator.CreateInstance<T>();
using (System.IO.MemoryStream ms =
new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr)))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
}
参考System.Xml.Serialization;
// JSON -> OBJECT
public static T JsonToObject<T>(string jsonData)
{
//return Newtonsoft.Json.JavaScriptConvert.DeserializeObject<T>(jsonData);
return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(jsonData);
}
public class cc
{
public bb skuMap { get; set; }
}
[DataContract]
public class bb
{
public aa 灰色>L { get; set; }
.....
}
public class aa
{
public int canBookCount{get;set;}
public int saleCount{get;set;}
public string specId{get;set;}
}
这样的形式,c#肯定过不去的
白色>XXL
灰色>L...都是成员名不是成员值要注意
class skuMap
{
public string type;
public int canBookCount;
public int saleCount;
public string specId;
}
string json = @"{
""灰色>L"":{""canBookCount"":905,""saleCount"":91,""specId"":""43b0e72e98731aed69e1f0cc7d64bf4d""},
""灰色>XL"":{""canBookCount"":929,""saleCount"":70,""specId"":""893746f5330dc3273d24aa1ac1a9a8b5""},
""灰色>XXL"":{""canBookCount"":942,""saleCount"":57,""specId"":""42d994cba0210528142a743d4069700f""},
""白色>L"":{""canBookCount"":862,""saleCount"":136,""specId"":""82114cbd2c10b5e97b01af1510807e2d""},
""白色>XL"":{""canBookCount"":881,""saleCount"":118,""specId"":""c45d8408137e34adf8e695250c42a2e9""},
""白色>XXL"":{""canBookCount"":917,""saleCount"":82,""specId"":""df78564262818d6eb0c428a37ab4a251""},
""蓝色>L"":{""canBookCount"":962,""saleCount"":35,""specId"":""e959b6ab7c355e403a3312c75bd3d5b4""},
""蓝色>XL"":{""canBookCount"":973,""saleCount"":26,""specId"":""27402e07efd89afa50733afa94cd6976""},
""蓝色>XXL"":{""canBookCount"":985,""saleCount"":14,""specId"":""358b6c3b52bf711ac8ecfe7513a4f3ad""}
}";
fastCSharp.setup.cSharp.ajax.jsonNode node = new fastCSharp.setup.cSharp.ajax.jsonParser().Parse(json);
skuMap[] values = node.Dictionary.getArray(value =>
{
skuMap skuMap = fastCSharp.setup.cSharp.ajax.parseJson.Get<skuMap>(value.Value);
skuMap.type = value.Key;
return skuMap;
});
{
public bb skuMap { get; set; }
}public class bb
{
public aa name1 { get; set; }
public aa name2 { get; set; }
public aa name3 { get; set; }
}public class aa
{
public int canBookCount { get; set; }
public int saleCount { get; set; }
public string specId { get; set; }
} aa aaa = new aa() { canBookCount = 1, saleCount = 2, specId = "43b0e72e98731aed69e1f0cc7d64bf4d" };
bb bbb = new bb() { name1 = aaa, name2 = aaa, name3 = aaa };
cc ccc = new cc() { skuMap = bbb };
Console.WriteLine(JSON.stringify(ccc));序列化出来是不是跟你的样式很相象啊, 可惜你有>哈哈
class skuMap
{
public string type;
public int canBookCount;
public int saleCount;
public string specId;
}
class skuMaps
{
public object skuMap;
public skuMap[] skuMapArray
{
get
{
return (((fastCSharp.setup.cSharp.ajax.jsonNode)skuMap).Dictionary).getArray(value =>
{
skuMap newValue = fastCSharp.setup.cSharp.ajax.parseJson.Get<skuMap>(value.Value);
newValue.type = value.Key;
return newValue;
});
}
}
}
string json = @"{""skuMap"":{
""灰色>L"":{""canBookCount"":905,""saleCount"":91,""specId"":""43b0e72e98731aed69e1f0cc7d64bf4d""},
""灰色>XL"":{""canBookCount"":929,""saleCount"":70,""specId"":""893746f5330dc3273d24aa1ac1a9a8b5""},
""灰色>XXL"":{""canBookCount"":942,""saleCount"":57,""specId"":""42d994cba0210528142a743d4069700f""},
""白色>L"":{""canBookCount"":862,""saleCount"":136,""specId"":""82114cbd2c10b5e97b01af1510807e2d""},
""白色>XL"":{""canBookCount"":881,""saleCount"":118,""specId"":""c45d8408137e34adf8e695250c42a2e9""},
""白色>XXL"":{""canBookCount"":917,""saleCount"":82,""specId"":""df78564262818d6eb0c428a37ab4a251""},
""蓝色>L"":{""canBookCount"":962,""saleCount"":35,""specId"":""e959b6ab7c355e403a3312c75bd3d5b4""},
""蓝色>XL"":{""canBookCount"":973,""saleCount"":26,""specId"":""27402e07efd89afa50733afa94cd6976""},
""蓝色>XXL"":{""canBookCount"":985,""saleCount"":14,""specId"":""358b6c3b52bf711ac8ecfe7513a4f3ad""}
}}";
skuMaps value = fastCSharp.setup.cSharp.ajax.parseJson.Get<skuMaps>(json);
""灰色>L"":{""canBookCount"":905,""saleCount"":91,""specId"":""43b0e72e98731aed69e1f0cc7d64bf4d""},
""灰色>XL"":{""canBookCount"":929,""saleCount"":70,""specId"":""893746f5330dc3273d24aa1ac1a9a8b5""},
""灰色>XXL"":{""canBookCount"":942,""saleCount"":57,""specId"":""42d994cba0210528142a743d4069700f""},
""白色>L"":{""canBookCount"":862,""saleCount"":136,""specId"":""82114cbd2c10b5e97b01af1510807e2d""},
""白色>XL"":{""canBookCount"":881,""saleCount"":118,""specId"":""c45d8408137e34adf8e695250c42a2e9""},
""白色>XXL"":{""canBookCount"":917,""saleCount"":82,""specId"":""df78564262818d6eb0c428a37ab4a251""},
""蓝色>L"":{""canBookCount"":962,""saleCount"":35,""specId"":""e959b6ab7c355e403a3312c75bd3d5b4""},
""蓝色>XL"":{""canBookCount"":973,""saleCount"":26,""specId"":""27402e07efd89afa50733afa94cd6976""},
""蓝色>XXL"":{""canBookCount"":985,""saleCount"":14,""specId"":""358b6c3b52bf711ac8ecfe7513a4f3ad""}
},
}";
var obj = (JObject)(JObject.Parse(json)["skuMap"]);
var result = from k in obj.Properties()
let names = k.Name.Split(new string[] { ">" }, StringSplitOptions.None)
let v = (JObject)k.Value
select new
{
颜色 = names[0],
尺码 = names[1],
库存 = (int)v["canBookCount"],
出售量 = (int)v["saleCount"],
编号 = (string)v["specId"]
};
var r = result.ToList();