簡體   English   中英

如何轉換一個JSON字符串?

[英]How to convert a json string?

似乎無法正常工作。 我有這個json字符串,我想將其轉換為C#對象:

{“ name”:“ mousePos”,“ args”:[{“ mouseDet”:{“ rid”:“ 1”,“ posx”:1277,“ posy”:275}}]}}

我一直在嘗試JavaScriptSerializer但沒有運氣。 我不確定如何獲取posx和posy的值。 誰能建議我該怎么做? 謝謝您的幫助。

編輯:

public class JsonData
{
    public string name { get; set; }
}
public Form1()
{
    // ---- Other stuff here ----

    string json = data.MessageText; // The json string.

    JavaScriptSerializer ser = new JavaScriptSerializer();
    JsonData foo = ser.Deserialize<JsonData>(json);


    MessageBox.Show(foo.name); // Shows 'mousePos'
}

我將其放入JsonLint並出現錯誤。 其無效的JSON

{
    "name": "mousePos",
    "args": [
        "mouseDet": {
            "rid": "1",
            "posx": 1277,
            "posy": 275
        }
    }    //-- THIS should not be here.
]
}

JSON無效的原因是因為您的“ args”屬性在方括號內包含一個鍵/值對,這不是有效的數組。 我猜應該是這樣的:

{
    "name":"mousePos",
    "args":[{"mouseDet":{"rid":"1","posx":1277,"posy":275}}]
}

您只需要稍微擴展一下對象模型即可覆蓋它。 根據示例中的內容,結果將類似於:

public class JsonData
{
    public string name { get; set; }
    public Arguments[] args { get; set; }
}

public class Arguments
{
    public MouseDet mouseDet { get; set; }
}

public class MouseDet
{
    public int rid { get; set; }
    public int posx { get; set; }
    public int posy { get; set; }
}

...

var posx = foo.args[0].mouseDet.posx;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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