2017-09-06 123 views
0

我想將System.Collections.GenericList'1 [Newtonsoft.Json.Linq.JToken]轉換爲JSON數組。Convert System.Collections.GenericList'1 [Newtonsoft.Json.Linq.JToken] List to Json Array c#

起初我不得不存儲在myDataJSON數組的字符串如下:

var myData = l.GetJsonData(); 

那麼現在我過濾JsonLINQ如下的幫助:

var root = JToken.Parse(myData); 
    var study_year = "2016/2017"; 
    var term = 2;var values = root.Where(t => 
(int?)t["term"] == term && (string)t["study_year"] == study_year).ToList(); 

現在values是具有排序數據但沒有Json格式的數據,它顯示System.Collections.GenericList'1[Newtonsoft.Json.Linq.JToken],how我可以讓它顯示Json數組字符串中的排序數據。

回答

1

只是簡單地添加以下以下:

var values = root.Where(t => 
    (int?)t["term"] == term && (string)t["study_year"] == study_year).ToList(); 
    var filteredJson = JsonConvert.SerializeObject(values); 
1

從列表中創建一個JArray,列表作爲構造函數參數。一旦你有了JArray,只需調用ToString()。

var root = JToken.Parse("[ {\"name\" : \"a\", value : 40 },{\"name\" : \"b\", value : 10 }, {\"name\" : \"c\", value : 25 } ]"); 

    var filtered = root.Where(t => (int?)t["value"] > 15).ToList(); 

    var jArray = new JArray(filtered); 

    Console.WriteLine(jArray.ToString()); 

上面將輸出以下

[ 
    { 
    "name": "a", 
    "value": 40 
    }, 
    { 
    "name": "c", 
    "value": 25 
    } 
]