2015-11-16 3 views
0

У меня есть следующие JSON:Десериализация динамический объект JSON в ListBox Databinding

{ 
    "COMPETITIONS": [ 
    { 
     "name": "Name 1", 
     "id": "76-7011", 
     "ltable": "0" 
    }, 
    { 
     "name": "Name 2", 
     "id": "116-7", 
     "ltable": "0" 
    }, 
    { 
     "name": "Name 3", 
     "id": "217-68", 
     "ltable": "0" 
    } 
    ] 
} 

Это десериализируется как динамические с помощью Json.NET

dynamic jsonResponse = JsonConvert.DeserializeObject(result); 

Я хочу передать эти данные в ListBox, такие как

lb.ItemsSource = jsonResponse 

<Page.Resources> 
     <DataTemplate x:Key="DataTemplate1"> 
      <Grid> 
       <TextBlock x:Name="textBox" TextWrapping="Wrap" Text="{Binding name}" d:LayoutOverrides="Width, Height" Foreground="Black"/> 
      </Grid> 
     </DataTemplate> 
    </Page.Resources> 

Но он говорит мне:

Error: BindingExpression path error: 'name' property not found on 'Newtonsoft.Json.Linq.JObject, Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. BindingExpression: Path='name' DataItem='Newtonsoft.Json.Linq.JObject, Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'; target element is 'Windows.UI.Xaml.Controls.TextBlock' (Name='textBox'); target property is 'Text' (type 'String')

Любой совет, пожалуйста, проанализируйте это в списке, не отходя от динамического и использования классов?

ответ

1

Вы можете создать класс для десериализации JSON.

public class COMPETITION 
{ 
    public string name { get; set; } 
    public string id { get; set; } 
    public string ltable { get; set; } 
} 

public class RootObject 
{ 
    public List<COMPETITION> COMPETITIONS { get; set; } 
} 

, чем вы можете десериализации, используя приведенный ниже код

var jsonResponse = JsonConvert.DeserializeObject<COMPETITION>(result); 
+0

Спасибо, есть способ сохранить это как динамический, а не создавать классы? –

+0

Пожалуйста, обратитесь к этой ссылке. http://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object –

Смежные вопросы