2016-08-17 13 views
0

JSONデータを解析することができません正しく

var source = "{'Departments': {'Department': [{'DeptName': 'HR','Deptid': '9228590'},{'DeptName': 'Finance','Deptid': '9295426' }]}}"; 

の下に、私はすべてのDeptidDeptName

私はNewtonsoft.Jsonを使用して

下として試みています取得する必要があるとして、私はJSONを持っています
using Newtonsoft.Json; 
using System; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      GetInformation(); 
     } 

     private static void GetInformation() 
     { 
      try 
      { 
       var source = "{'Departments': {'Department': [{'DeptName': 'HR','Deptid': '9228590'},{'DeptName': 'Finance','Deptid': '9295426' }]}}"; 
       dynamic stuff = JsonConvert.DeserializeObject(source); 

       string DeptId = stuff.Deparments.Department[0].Deptid; 
       string DeptName = stuff.Deparments.Department[0].DeptName; 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
     } 
    } 
} 

しかし、Null参照例外が発生しています。

+0

http://stackoverflow.com/questions/4535840/deserialize-json-object-into-dynamic-object-using-json-net – MichaelMao

+0

値は、オブジェクトの配列の内側にあります。 –

+0

「stuff」は空ですか? – sr28

答えて

1

あなたのオブジェクトはプロパティDeptId、唯一Depidを持っていません助けてください。また、これらのプロパティは、私が推測するように、ネストされているあなたは、このようなものを使用する必要があります:

string DeptId = stuff.Departments.Department[0].Depid; 
string DeptName = stuff.Departments.Department[0].DeptName; 
+0

こんにちは、私はそれを修正しました。それはtypoでした –

+0

私は私の答えを更新した、今試してみました。 –

+0

stuff.Deparmentsがnullになっているので、null参照例外として来ています...私の質問を編集しました –

1

これは配列から最初の要素を取得するために、一例であり、この

stuff.Departments.Department[0].DeptName 
stuff.Departments.Department[0].Depid 

試してみてください。配列内のすべてのオブジェクトの名前とIDを取得するには、配列全体を反復処理する必要があります。あなたはDEPTID

Depid代わりのを使用している

2

は、それは次のようになります。 文字列DEPTID = stuff.Departments.Department [0] .Deptid。

+0

Rafalの答えはすでに述べていたと思いますが、生のJSONについて話しているようです。 – sr28

+2

言われているように、それは彼がstuffとのタイプミスをしているように見えます.Deparments、それはstuffのように見えるところです.Departments( 't' missing)。 – sr28

0

実際にObjectsに間違った名前を使用しています(Departments, Depidなど)。このobjectsの名前を修正した場合は正常に動作します。

string DeptId = stuff.Departments.Department[0].Deptid; 
string DeptName = stuff.Departments.Department[0].DeptName; 
関連する問題