我需要使用C#在后端获取我的JSON对象的值。 JSON对象如下:
{ "StudentName": "Michael Lumb", "SubjectCodes": [ "1", "2" ], "Grade": "3"}
我尝试的代码是:
public string AddStudent(JObject studentData)
{
dynamic dObject = JObject.Parse(studentData.ToString());
string _studentName = dObject.StudentName;//works fine
string[] _subjectCodes= dObject.SubjectCodes;//gives error 'cannot implicitly convert type....'
}
我的要求是将“SubjectCodes”作为字符串数组。如何实现?
答案 0 :(得分:1)
安装newtonsoft:
Install-Package Newtonsoft.Json
从json转换:
string json = "{ 'StudentName': 'Michael Lumb', 'SubjectCodes': ['1','2'], 'Grade': '3'}";
Student student = JsonConvert.DeserializeObject<Student>(json);
转换为json:
string json = JsonConvert.Serialize(student);
答案 1 :(得分:0)
从http://james.newtonking.com/json下载NewtonSoft.dll 它有将数据转换为json文件的方法,反之亦然
答案 2 :(得分:0)
在similar StackOverflow question中找到答案。
但是你也应该考虑使用强类型对象:
public class Student
{
public string StudentName { get; set; }
public string[] SubjectCodes { get; set; }
public int Grade { get; set; }
}
...
var student = JsonConvert.DeserializeObject<Student>(json);
Console.WriteLine(student.SubjectCodes[0]);
C#是一种强类型语言,在可能的情况下,最好用强类型对象描述您的问题域。通过这种方式,您可以获得强类型的好处:编译时错误,重构等。如果json不正确,在尝试反序列化时会立即捕获错误,而不是在以后可能会失败的情况下,在那里它不会立即明显是什么问题是。