2013-06-19 41 views
0

对此我从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的多个对象并填充它们?

回答

2

这看起来并不像有效的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); 
} 
+0

你能告诉我如何返回该格式的数组吗?我当前的PHP代码是 <?php require'connect.php'; header('Content-type:application/json'); $ name = mysql_real_escape_string($ _ GET [“name”]); $ query =“select * from samptable s where s.name ='{$ name}';”; 如果($ query_run =的mysql_query($查询)) { 而($ query_row = mysql_fetch_assoc($ query_run)) { \t $ jsonresponse = json_encode($ query_row); \t print($ jsonresponse); \t echo“,”; } } else { echo mysql_error(); } ?> –

+0

明白了! 谢谢了:) –