2012-10-05 48 views
2

我需要反序列化这个。在JSON.NET中反序列化Jarray

{"previous_cursor_str":"0","next_cursor":0,"ids":[741999686,240455509,126524150,143548100,124328422,624776268,393738125,587829914,280834485,64818350,282713007,90425850,759794,164401208,114771958,114364910,89725893],"previous_cursor":0,"next_cursor_str":"0"}  

有什么想法吗?

+0

它应该只是'IEnumerable' –

回答

4

它的JObject真的有一个Id的数组里面。

首先,你可以创建一个类来表示这样的JSON:

public class RootObject 
{ 
    public string previous_cursor_str { get; set; } 
    public int next_cursor { get; set; } 
    public List<int> ids { get; set; } 
    public int previous_cursor { get; set; } 
    public string next_cursor_str { get; set; } 
} 

然后反序列化JSON转换成你这样做的目的:

var myJsonObject = JsonConvert.DeserializeObject<RootObject>(jsonString); 

或者,如果你只是想的ID在阵列中:

var obj = JObject.Parse(jsonstring); 

var idArray = obj["ids"].Children().Select(s=>s.value<string>()); 
0

刚刚试过https://jsonclassgenerator.codeplex.com/并得到了下面的代码。这与凯比的课程相同。漂亮的工具。

using System; 
using System.Collections.Generic; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 

namespace Example 
{ 
    class Result 
    { 
    [JsonProperty("previous_cursor_str")] 
    public string PreviousCursorStr { get; set; } 

    [JsonProperty("next_cursor")] 
    public int NextCursor { get; set; } 

    [JsonProperty("ids")] 
    public IList<int> Ids { get; set; } 

    [JsonProperty("previous_cursor")] 
    public int PreviousCursor { get; set; } 

    [JsonProperty("next_cursor_str")] 
    public string NextCursorStr { get; set; } 
    }  

    public static unsafe void Main() 
    { 
    Result result = JsonConvert.DeserializeObject<Result> (" ... your string ..."); 
    Console.WriteLine(result); 
    } 
}