私は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
}
]
}
すでにpopularity
の値を返すことができます
例として、name
の値にアクセスする方法と、それがどのname
であるかを知る必要がありますか?
また、配列に変換しようとしましたが、機能しなかったか、何か間違ったことをしました。
映画のクラス:
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);
取得したデータを簡単に使用できます
最初に以下のようにクラスを定義します。
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をクラスオブジェクトに変換できます
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;
}
これを行う最も簡単な方法は、JSONに一致するクラスを作成し、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...
}