[英]Converting JSON object to dynamic object
我需要使用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”作為字符串數組。 如何實現呢?
安裝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);
從http://james.newtonking.com/json下載NewtonSoft.dll,它具有將數據轉換為json文件的方法,反之亦然
在類似的StackOverflow問題中找到了答案。
但是,您還應該考慮使用強類型對象:
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不正確,則在嘗試反序列化時將立即捕獲錯誤,而不是稍后可能導致失敗,而立即失敗的原因不明顯問題是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.