将JSON响应字符串转换为UWP gridview数据源

时间:2017-11-23 17:27:52

标签: c# visual-studio rest uwp

我有以下代码从数据库中成功检索JSON字符串。我现在想在客户端的gridview中显示这些信息,虽然我不知道如何做到这一点。

if (response.IsSuccessStatusCode)
{
    string strJson = response.Content.ReadAsStringAsync().Result;
    Console.WriteLine(strJson);
    //apply to my grid view
}

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

DataTable myObject = JsonConvert.DeserializeObject<DataTable>(strJson);  
//Binding gridview from dynamic object   
grdView.DataSource = myObject;  
grdView.DataBind()

答案 1 :(得分:0)

你必须反序列化对象,例如。与newtonsoft库。为此,请使用属性或手动创建反序列化器,但您必须创建表示数据库数据的类或结构。

如果例如。你的json看起来像这样:

{
  "Name":"Aleks",
  "City": "N.Y."
}

尝试创建类:

public class Person{
  public string Name {get;set;}
  public string City {get;set;}  
}

在您的情况下

if (response.IsSuccessStatusCode){
string strJson = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(strJson);
Person person = JsonConvert.DeserializeObject<Person>(strJson);    
}

要在GridView中显示它,您必须在xaml中声明GridView:

<GridView x:Name="test" DataTemplate="{StaticResource YourTemplate}"/>

在codebehind中

 test.ItemSource = new List<Preson>(){person};

还需要DataTemplate。

<GridView x:Name="test">
<GridView.ItemTemplate>
 <DataTemplate>
  <StackPanel>
   <TextBlock Text{Binding Name}/>
   <TextBlock Text{Binding City}/>
  </StackPanel>
 </DataTemplate>
</GridView.ItemTemplate>
</GridView>