从JSON中的数据中提取所有值
我在从JSON中的数据中提取所有值,json,c#,newtonsoft,Json,C#,Newtonsoft,我在“data”中收到了多个电影标题的回复。有没有办法快速提取它们?我需要一个只有电影标题的数组 { "page": "2", "per_page": 10, "total": 13, "total_pages": 2, "data": [{ "Poster": "N/A", "Title": "They Call Me Spiderman", "Type": "movie", "Year": 2016, "imdbID": "tt58
“data”
中收到了多个电影标题的回复。有没有办法快速提取它们?我需要一个只有电影标题的数组
{
"page": "2",
"per_page": 10,
"total": 13,
"total_pages": 2,
"data": [{
"Poster": "N/A",
"Title": "They Call Me Spiderman",
"Type": "movie",
"Year": 2016,
"imdbID": "tt5861236"
}, {
"Poster": "N/A",
"Title": "The Death of Spiderman",
"Type": "movie",
"Year": 2015,
"imdbID": "tt5921428"
}, {
"Poster": "https://images-na.ssl-images-amazon.com/images/M/MV5BZDlmMGQwYmItNTNmOS00OTNkLTkxNTYtNDM3ZWVlMWUyZDIzXkEyXkFqcGdeQXVyMTA5Mzk5Mw@@._V1_SX300.jpg",
"Title": "Spiderman in Cannes",
"Type": "movie",
"Year": 2016,
"imdbID": "tt5978586"
}]
}
var data=newdictionary();
数据。添加(“foo”、“baa”);
JavaScriptSerializer ser=新的JavaScriptSerializer();
var JSONString=ser.Serialize(数据)//JSON编码
var JSONObj=ser.Deserialize(JSONString)//JSON解码
Console.Write(JSONObj[“foo”])//印刷品:baa
您可以使用:
- C#
- C#
dynamic content = JsonConvert.DeserializeObject<ExpandoObject>(data);
DynamicContent=JsonConvert.DeserializeObject(数据);
大概是这样的:
using System;
using System.Dynamic;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
string data = @"{
'page': '2',
'per_page': 10,
'total': 13,
'total_pages': 2,
'data': [{
'Poster': 'N/A',
'Title': 'They Call Me Spiderman',
'Type': 'movie',
'Year': 2016,
'imdbID': 'tt5861236'
}, {
'Poster': 'N/A',
'Title': 'The Death of Spiderman',
'Type': 'movie',
'Year': 2015,
'imdbID': 'tt5921428'
}, {
'Poster': 'https://images-na.ssl-images-amazon.com/images/M/MV5BZDlmMGQwYmItNTNmOS00OTNkLTkxNTYtNDM3ZWVlMWUyZDIzXkEyXkFqcGdeQXVyMTA5Mzk5Mw@@._V1_SX300.jpg',
'Title': 'Spiderman in Cannes',
'Type': 'movie',
'Year': 2016,
'imdbID': 'tt5978586'
}]
}";
dynamic content = JsonConvert.DeserializeObject<ExpandoObject>(data);
int i;
int len = content.data.Count;
string result = "";
string[] myArray;
for (i = 0; i < len; i++)
{
result += content.data[i].Title; // Extract the movie title.
result += ","; // Conact with commas.
}
result = result.Substring(0, result.Length - 1);
myArray = result.Split(','); // Array of string with the movie titles.
Console.WriteLine(myArray[0]);
}
}
使用系统;
运用系统动力学;
使用Newtonsoft.Json;
公共课程
{
公共静态void Main()
{
字符串数据=@“{
“第页”:“2”,
“每页”:10,
"总数":13,
“总页数”:2页,
“数据”:[{
“海报”:“不适用”,
标题:'他们叫我蜘蛛侠',
“类型”:“电影”,
“年份”:2016年,
“imdbID”:“tt5861236”
}, {
“海报”:“不适用”,
《标题》:《蜘蛛侠之死》,
“类型”:“电影”,
“年份”:2015年,
“imdbID”:“tt5921428”
}, {
‘海报’https://images-na.ssl-images-amazon.com/images/M/MV5BZDlmMGQwYmItNTNmOS00OTNkLTkxNTYtNDM3ZWVlMWUyZDIzXkEyXkFqcGdeQXVyMTA5Mzk5Mw@@._V1_SX300.jpg',
《标题》:《戛纳蜘蛛侠》,
“类型”:“电影”,
“年份”:2016年,
“imdbID”:“tt5978586”
}]
}";
动态内容=JsonConvert.DeserializeObject(数据);
int i;
int len=content.data.Count;
字符串结果=”;
字符串[]myArray;
对于(i=0;i
请参见操作:.使用
Newtonsoft.Json.Linq
可能为您完成最简单的工作
using Newtonsoft.Json.Linq;
List<string> movieTitles = (JObject.Parse(json)["data"]).
Cast<JToken>().Select(x => x["Title"].ToString()).ToList();
使用Newtonsoft.Json.Linq;
List movieTitles=(JObject.Parse(json)[“data”])。
Cast().Select(x=>x[“Title”].ToString()).ToList();
Danny,谢谢你。但问题是如何在C#中实现,而不是JavaScript(参见标记)。我很抱歉没有写得更清楚,对此我感到很抱歉。看看newtonsoft.json您是否尝试过使用json.NET?
using Newtonsoft.Json.Linq;
List<string> movieTitles = (JObject.Parse(json)["data"]).
Cast<JToken>().Select(x => x["Title"].ToString()).ToList();