如何在 C# 中使用 json 对象
how to work with json object in c#
我正在使用来自 API 的 json,这就是我所说的:
{
"popularity": 3.518962,
"production_companies": [
{
"name": "value1",
"id": 4
},
{
"name": "value2",
"id": 562
},
{
"name": "value13",
"id": 14654
},
{
"name": "value4",
"id": 19177
},
{
"name": "value5",
"id": 23243
}
]
}
我已经可以 return 值 popularity
例如,我需要知道如何访问 name
的值以及它是哪个 name
?
我也试过将其转换为数组,但没有成功,或者我做错了什么。
电影class:
public class Movie {
public string popularity {get; set;}
public object production_companies {get; set;}
public Movie GetBasic(string id) {
string json = @"{
"popularity": 3.518962,
"production_companies": [
{
"name": "value1",
"id": 4
},
{
"name": "value2",
"id": 562
},
{
"name": "value13",
"id": 14654
},
{
"name": "value4",
"id": 19177
},
{
"name": "value5",
"id": 23243
}
]
}";
Movie Data = JsonConvert.DeserializeObject<Movie>(json);
return Data;
}
到目前为止我做了什么:
@{
var arr = Item.production_companies.ToString().Substring(1, (Item.production_companies.ToString().Length - 2)).ToArray();
foreach(var a in arr) {
@a.name
}
}
获得 json 字符串后,您需要对其进行反序列化。
使用此站点生成您的模型
你会得到一些类喜欢
public class ProductionCompany
{
public string name { get; set; }
public int id { get; set; }
}
public class RootObject
{
public double popularity { get; set; }
public List<ProductionCompany> production_companies { get; set; }
}
那你可以打电话给
var json = "...yout json string..."
RootObject obj = JsonConvert.DeserializeObject<RootObject >(json);
并且您可以轻松使用检索到的数据
最简单的方法是创建一个与您的 JSON 匹配的 class,反序列化 JSON,然后通过创建的对象访问属性。
例如:
public class Companies(){
public double Popularity { get; set; }
public List<ProductionCompany> Production_Companies { get;set; }
public Companies(){
Production_Companies = new List<ProductionCompany>();
}
}
public class ProductionCompany(){
public string Name {get;set;}
public int Id {get;set;}
}
然后用JSON.Net
反序列化
var myObject = JsonConvert.DeserializeObject<Companies>(jsonString);
并访问属性
foreach (var company in myObject.Production_Companies)
{
company.Name; //do something...
}
首先定义类如下:
public class ProductionCompany
{
public string name { get; set; }
public int id { get; set; }
}
public class Item
{
public double popularity { get; set; }
public List<ProductionCompany> production_companies { get; set; }
}
然后您可以使用 jsonSerializer 将您的 JSON 转换为 class 对象
string jsonInput="your Json string";
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
Item item= jsonSerializer.Deserialize<Item>(jsonInput)
现在您的数据可以很容易地从对象项中检索出来,就像这样
foreach (var productioncompany in item.Production_Companies)
{
productioncompany.Name;
productioncompany.id;
}
我正在使用来自 API 的 json,这就是我所说的:
{
"popularity": 3.518962,
"production_companies": [
{
"name": "value1",
"id": 4
},
{
"name": "value2",
"id": 562
},
{
"name": "value13",
"id": 14654
},
{
"name": "value4",
"id": 19177
},
{
"name": "value5",
"id": 23243
}
]
}
我已经可以 return 值 popularity
例如,我需要知道如何访问 name
的值以及它是哪个 name
?
我也试过将其转换为数组,但没有成功,或者我做错了什么。
电影class:
public class Movie {
public string popularity {get; set;}
public object production_companies {get; set;}
public Movie GetBasic(string id) {
string json = @"{
"popularity": 3.518962,
"production_companies": [
{
"name": "value1",
"id": 4
},
{
"name": "value2",
"id": 562
},
{
"name": "value13",
"id": 14654
},
{
"name": "value4",
"id": 19177
},
{
"name": "value5",
"id": 23243
}
]
}";
Movie Data = JsonConvert.DeserializeObject<Movie>(json);
return Data;
}
到目前为止我做了什么:
@{
var arr = Item.production_companies.ToString().Substring(1, (Item.production_companies.ToString().Length - 2)).ToArray();
foreach(var a in arr) {
@a.name
}
}
获得 json 字符串后,您需要对其进行反序列化。 使用此站点生成您的模型
你会得到一些类喜欢
public class ProductionCompany
{
public string name { get; set; }
public int id { get; set; }
}
public class RootObject
{
public double popularity { get; set; }
public List<ProductionCompany> production_companies { get; set; }
}
那你可以打电话给
var json = "...yout json string..."
RootObject obj = JsonConvert.DeserializeObject<RootObject >(json);
并且您可以轻松使用检索到的数据
最简单的方法是创建一个与您的 JSON 匹配的 class,反序列化 JSON,然后通过创建的对象访问属性。
例如:
public class Companies(){
public double Popularity { get; set; }
public List<ProductionCompany> Production_Companies { get;set; }
public Companies(){
Production_Companies = new List<ProductionCompany>();
}
}
public class ProductionCompany(){
public string Name {get;set;}
public int Id {get;set;}
}
然后用JSON.Net
反序列化 var myObject = JsonConvert.DeserializeObject<Companies>(jsonString);
并访问属性
foreach (var company in myObject.Production_Companies)
{
company.Name; //do something...
}
首先定义类如下:
public class ProductionCompany
{
public string name { get; set; }
public int id { get; set; }
}
public class Item
{
public double popularity { get; set; }
public List<ProductionCompany> production_companies { get; set; }
}
然后您可以使用 jsonSerializer 将您的 JSON 转换为 class 对象
string jsonInput="your Json string";
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
Item item= jsonSerializer.Deserialize<Item>(jsonInput)
现在您的数据可以很容易地从对象项中检索出来,就像这样
foreach (var productioncompany in item.Production_Companies)
{
productioncompany.Name;
productioncompany.id;
}