2017-04-23 14 views
0

私は次のようにjsonを持っています。私はjsonをobjectclassに変換し、subjectidとクラスidのループを通過させましたが、動作しません。私はsubjectidとCLASSIDをする方法this.iは、C#で新しいですか私を助けてください、私を助けてください、私はあなたに非常にthanfulだ男jsonにオブジェクトに変換してデータループを取得する方法

[{ 
    "teacherid": 1, 
    "teachername": "Addi Teacher", 
    "class": {  
     "class_id": 2,  
     "class_name": "Class 9" 
    }, 
    "subjecname": { 

     "subject_id": 2,   
     "Subject_Name": "chemistry" 
    }, 
    "$$hashKey": "object:10" 
}, { 
    "teacherid": 1, 
    "teachername": "Addi Teacher", 
    "class": {  
     "class_id": 2,  
     "class_name": "Class 9" 
    }, 
    "subjecname": { 
     "subject_id": 4,   
     "Subject_Name": "Science" 
    }, 
    "$$hashKey": "object:12" 
}, { 
    "teacherid": 1, 
    "teachername": "Addi Teacher", 
    "class": { 

     "class_id": 2,  
     "class_name": "Class 9" 
    }, 
    "subjecname": { 

     "subject_id": 3,   
     "Subject_Name": "P.Study" 
    }, 
    "$$hashKey": "object:14" 
}] 


//c# class 
public class Class 
{ 
    public int class_id { get; set; } 
    public string class_name { get; set; } 
} 

public class Subjecname 
{ 
    public int subject_id { get; set; } 
    public string Subject_Name { get; set; } 
} 

public class RootObject 
{ 
    public int teacherid { get; set; } 
    public string teachername { get; set; } 
    public Class @class { get; set; } 
    public Subjecname subjecname { get; set; } 
    public string __invalid_name__$$hashKey { get; set; } 
} 

// code 
    subjectobject objsub = new JavaScriptSerializer().Deserialize<subjectobject>(jsonstring); 

enter image description here

+0

あるものあなたは持っている問題?デシリアライゼーションは機能していますか、それらのプロパティを取得する方法はわかりません。 – CodingYoshi

+0

サブジェクトIDの取得方法サブジェクトIDの取得方法サブジェクトIDループを取得する方法 –

+1

NewtonSoft.Jsonを使用している場合は、次のコードを記述する必要があります。 'var obj = JsonConvert.DeserializeObject ("あなたのjson ");'。これにより、RootObjectクラスオブジェクトの配列に変換されます。 –

答えて

0

あなたが必要なものを達成するために、次の手順を実行します。

  1. 私の回答hereを使用して、JSON用のC#クラスを生成してください。手動で作成したものはJSONを正確に反映していません。
  2. NuGetパッケージを使用してjsonからC#へのデシリアライズ
  3. 次にLinqまたはループを使用して、必要なプロパティを取得します。

ここではあなたがコードは次のようになりますrは何です:ところで

var obj = JsonConvert.DeserializeObject<Rootobject>("your json"); 
var result = obj.Property1.Select(x => 
    new { ClassId = x._class.class_id, SubjectId = x.subjecname.subject_id }); 

、これは私のリンクの答えがあなたのために生成されるものである。

public class Rootobject 
{ 
    public Class1[] Property1 { get; set; } 
} 

public class Class1 
{ 
    public int teacherid { get; set; } 
    public string teachername { get; set; } 
    public Class2 _class { get; set; } 
    public Subjecname subjecname { get; set; } 
    public string hashKey { get; set; } 
} 

public class Class2 
{ 
    public int class_id { get; set; } 
    public string class_name { get; set; } 
} 

public class Subjecname 
{ 
    public int subject_id { get; set; } 
    public string Subject_Name { get; set; } 
} 
+0

あなたのおかげでショーのエラーに助けてくれてありがとうその他の情報:正しくデシリアライズするにはJSONオブジェクト(たとえば{"name": "value"})が必要です。 –

+0

@AddiKhan私が概説したようにすべてのステップを実行しましたか? – CodingYoshi

+0

NewtonSoft.Jsonを使用している場合は、次のコードを記述する必要があります。 var obj = JsonConvert.DeserializeObject ( "あなたのjson");.これにより、RootObjectクラスオブジェクトの配列に変換されます。 - –

関連する問題