簡體   English   中英

將JSON對象轉換為動態對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM