2

我正在使用 JSON.net,我想要的是能够直接绑定动态反序列化的 JSON 以直接绑定为 XAML 中的属性,而无需为 JSON 转换定义基类。我的意思是运行时绑定而不是编译类型绑定 - 直接到各种元素,这样就不需要对每个 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 回答