搜尋此網誌

2014-09-10

Json.Net Deserialize JSON Array

Querying JSON with SelectToken
How do I deserialize a JSON array and ignore the root node?

將List序列化成JSON後,會變成單純的Array,無法直接反序列化還原成List,要加點工才行。

將json存成以下格式
{
 "SomeTables" :
 [
  {
   "id": "1"
  },
  {
   "id": "2"
  },
  {
   "id": "3"
  }
 ]
}
var list = new List<SomeTable>();
//do something...
var obj = new {SomeTables = list};
var listJson = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented);
File.WriteAllText(@"SomeTables.json", listJson);

var json = File.ReadAllText(@"SomeTables.json");
var jtoken = JObject.Parse(json).SelectToken("SomeTables").ToString();
var newObj = JsonConvert.DeserializeObject<List<SomeTable>>(jtoken);

沒有留言: