JSON 配列オブジェクトを読み取ろうとすると、問題が発生します。
PHPを使用してJSONデータを作成しています。
if (mysql_num_rows($result) > 0) {
// looping through all results
// products node
$response["records"] = array();
//$response["products"] = array();
while ($row = mysql_fetch_array($result))
{
// temp user array
$record = array();
$record["vehicleNo"] = $row["vehicleNo"];
$record["vehicleType"] = $row["vehicleType"];
$record["inTime"] = $row["inTime"];
$record["outTime"] = $row["outTime"];
$record["entryUser"] = $row["entryUser"];
// push single record into final response array
array_push($response["records"], $record);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
}
上記のコードは、次の JSON を返します。
{"records":[{"vehicleNo":"6545","vehicleType":"Bike","inTime":"2013-08-01 18:11:20","outTime":"2013-08-01 19:27:55","entryUser":"srini"}],"success":1}
次のコードを使用して JSON を解析しています。
var rootObject = JsonConvert.DeserializeObject<MyBookList>(e.Result);
Console.WriteLine(rootObject.success);
MessageBox.Show(rootObject.success.ToString());
foreach (var re in rootObject.recordsss)//
{
Debug.WriteLine(re.value_record);
MessageBox.Show(re.value_record);
}
public class MyBookList
{
public string success { get; set; }
public MyRecords[] recordsss { get; set; }
}
public class MyRecords
{
public string value_record { get; set; }
}
ただし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーがスローされます。
この問題を解決し、JSON データを適切に読み取るにはどうすればよいですか。