解析多的Json行中的Windows Phone
问题描述:
对此我从PHP生成的json响应:解析多的Json行中的Windows Phone
{"name":"abhi","age":"20","id":"1"}
{"name":"abhi","age":"21","id":"4"}
和C#代码:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Load(textBox1.Text);
}
public void Load(string keyword)
{
var client = new RestClient("http://localhost/query.php?name="+keyword);
var request = new RestRequest(Method.GET);
//request.AddParameter("name", keyword);
/*request.AddParameter("v", "1.0");
request.AddParameter("q", keyword);
request.AddParameter("hl", "id");
request.AddParameter("rsz", 5);*/
client.ExecuteAsync<RootObject>(request, (response) =>
{
// var resp = response.Data.ToString();
// var respLines = resp.Split('\n');
RootObject rootObject=response.Data;
listBox1.Items.Clear();
if (rootObject == null)
MessageBox.Show("null");
else
{
listBox1.Items.Add(rootObject.age+" " + rootObject.name);
}
});
}
}
}
public class RootObject
{
public string name { get; set; }
public string age { get; set; }
public string id { get; set; }
}
我能够读取第一行,但不为多行。任何人都知道如何以json格式获取多行。如何创建json的多个对象并填充它们?
答
这看起来并不像有效的JSON,尝试从PHP返回一个JSON阵列:
{
"rows": [
{"name":"abhi","age":"20","id":"1"},
{"name":"abhi","age":"21","id":"4"}
]
}
这将是反序列化相应的C#类:
public class Row
{
public string name { get; set; }
public string age { get; set; }
public string id { get; set; }
}
public class RootObject
{
public List<Row> rows { get; set; }
}
而且你可以添加你行与:
foreach (var row in rootOject.rows)
{
listBox1.Items.Add(row.age+" " + row.name);
}
你能告诉我如何返回该格式的数组吗?我当前的PHP代码是 –
明白了! 谢谢了:) –