JSON去序列化正在生成正确数量的空对象
我正在尝试反序列化json。据我所知,它正在被反序列化,因为它正在生成与json字符串中相同数量的数组项。但是数组的items\ objects为空(null) 下面是返回的jsonJSON去序列化正在生成正确数量的空对象,json,c#-4.0,json.net,Json,C# 4.0,Json.net,我正在尝试反序列化json。据我所知,它正在被反序列化,因为它正在生成与json字符串中相同数量的数组项。但是数组的items\ objects为空(null) 下面是返回的json [{ "ID": "BM101", "courseName": "Mas Communications", "courseShortName": "MC", "isSynchronized": "0" }, { "ID": "CS105", "courseName":
[{
"ID": "BM101",
"courseName": "Mas Communications",
"courseShortName": "MC",
"isSynchronized": "0"
}, {
"ID": "CS105",
"courseName": "Discrete Mathematics",
"courseShortName": "DM",
"isSynchronized": "0"
}, {
"ID": "CS65",
"courseName": "Linera Algebra",
"courseShortName": "LA",
"isSynchronized": "0"
}, {
"ID": "SE951",
"courseName": "Digital Image Processing",
"courseShortName": "DIP",
"isSynchronized": "0"
}]
下面是我用来反序列化它的类
namespace ASAS
{
public class Serial_Courses
{
string ID {set;get;}
string courseName {set;get;}
string courseShortName{set;get;}
string isSynchronized { set; get; }
}
}
这是我的代码,我使用的是Newonsoft.JSON
var json = new WebClient().DownloadString(url);
Serial_Courses[] sc = JsonConvert.DeserializeObject<Serial_Courses[]>(json);
Newtonsoft无法访问
Serial\u Courses
对象的属性,因此无法将JSON属性反序列化到它们中。如果未在类的属性上指定访问修饰符,则它们是私有的。如果您将public
添加到您的属性中,反序列化应该会按预期工作。该死的,我犯了这样一个错误。。。谢谢,请把它作为回复贴出来,这样我就可以接受了
<?php
header("Content-Type:application/json");
include('dblink.php');
$query = "";
if($_GET["mode"] == "1")
$query = "SELECT * FROM courses";
elseif($_GET["mode"] == "2")
$query = "SELECT * FROM grades";
elseif($_GET["mode"] == "3")
$query = "SELECT * FROM students";
elseif($_GET["mode"] == "4")
$query = "SELECT * FROM student_courses";
elseif($_GET["mode"] == "5")
$query = "SELECT * FROM student_lecture";
elseif($_GET["mode"] == "6")
$query = "SELECT * FROM teacher";
elseif($_GET["mode"] == "7")
$query = "SELECT * FROM teacher_courses";
elseif($_GET["mode"] == "8")
$query = "SELECT * FROM timetable";
elseif($_GET["mode"] == "9")
$query = "SELECT * FROM user_accounts";
$result = mysql_query($query);
$json_response = "";
if( mysql_num_rows($result)==1)
{
$r = mysql_fetch_assoc($result);
$json_response = json_encode($r);
}
elseif(mysql_num_rows($result)>1)
{
$firsttime = 0;
$json_response = "[";
while( $r = mysql_fetch_assoc($result) )
{
if($firsttime != 0)
{
$json_response .= ",";
}
$json_response .= json_encode($r);
$firsttime = 1;
}
$json_response .= "]";
}
echo $json_response;
?>