2

私はJSON.netを使用しています.JSON変換の基本クラスを定義せずに、動的に逆シリアル化されたJSONをXAMLのプロパティとして直接バインドできるようにしたいです。これは、ランタイム バインディングを意味し、コンパイル タイプ バインディングではありません。JSON ファイルごとにバックコーディングを必要としないように、すぐにさまざまな要素に変換します。

void LoadJsonfrmWeb(object sender, OpenReadCompletedEventArgs e)
        {

            Stream stream = e.Result;

            dynamic json = new ExpandoObject();

            json = JsonHelpers.CreateFromJsonStream<ExpandoObject>(stream);

現在: UI では、次のサンプル JSON に対して次のようにできるようにしたいと考えています。

{
     "id": "6",  
     "firstName": "Rose",
     "lastName": "Tobin",
     "age": 34,
     "address":
     {
         "streetAddress": "Butterfly Cresecent",
         "city": "Dublin",
         "state": "IR",
         "postalCode": "140085"
     },
     "phoneNumber":
      [   
         {
           "type": "home",
           "number": "001 990-0018"
         },
         {
           "type": "fax",
           "number": "124 999-9808"
         }
     ]

 }

<Grid x:Name="detail" DataContext="{Binding Path=json}">    
<TextBlock Text="{Binding Path=firstName.Value}"  />    
<TextBlock Text="{Binding Path=lastName.Value}" />

私は ImpromptuInterface を試し、DLR としてさまざまなオプションを調べましたが、まだ完全にはできていません.. :(

アイデア、ヘルプ、または提案が大いに期待されており、誰かがここで私を助けてくれればとてもうれしいです.. :)

皆さん、ありがとうございました :)

ありがとう ..

4

1 に答える 1

0

Windows Phone 8 を使用している場合は、PropertySet を使用できます。JSON をプロパティ セットに逆シリアル化すると、それに直接バインドできます。プロパティ セットにプロパティ セットを含めることができるため、事前に定義しなくても複雑なオブジェクトを作成できます。

http://msdn.microsoft.com/library/windows/apps/windows.foundation.collections.propertyset.aspx

于 2014-07-03T20:29:52.283 に答える