Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON中的数据中提取所有值_Json_C#_Newtonsoft - Fatal编程技术网

从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();