我想将System.Collections.GenericList'1 [Newtonsoft.Json.Linq.JToken]
转换为JSON数组。
最初我将 JSON数组字符串存储在myData
中,如下所示:
var myData = l.GetJsonData();
现在我在Json
的帮助下过滤我的LINQ
,如下所示:
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]
,如何让它显示Json数组字符串中的排序数据。
答案 0 :(得分: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
}
]
答案 1 :(得分:0)
只需添加以下内容:
var values = root.Where(t =>
(int?)t["term"] == term && (string)t["study_year"] == study_year).ToList();
var filteredJson = JsonConvert.SerializeObject(values);