簡體   English   中英

JToken序列化為字符串json.net

[英]JToken serializing to string json.net

我有一個對象

public class myEntity
    {
        public string Foo
        {
            get;
            set;
        }

        public string Bar
        {
            get;
            set;
        }

        public JToken Quux
        {
            get;
            set;
        }
}

我發送給他們的值分別是: "ABC", "20090101100000" {"QuuxId":1234,"QuuxName":"Sam"}{"QuuxId":1234,"QuuxName":"Sam"}

當我做:

var serializedString = JsonConvert.SerializeObject(data);

serializedString值如下所示:

{"Foo":"ABC","Bar":"20090101100000","Quux":"  {\"QuuxId\":1234,\"QuuxName\":\"Sam\"}"}

我希望Quux的值保持JToken而不是變成字符串,如下所示:

{"Foo":"ABC","Bar":"20090101100000","Quux":{"QuuxId":1234,"QuuxName":"Sam"}}

您無法序列化string ,必須將其ParseJToken

string quux_string = "{\"QuuxId\":1234,\"QuuxName\":\"Sam\"}";

var data = new myEntity()
{
    Foo = "ABC",
    Bar = "20090101100000",
    Quux = JToken.Parse(quux_string)
};

我認為這個例子可以解釋你做錯了什么

JToken j1 = "{\"QuuxId\":1234,\"QuuxName\":\"Sam\"}"; //this is an ordinary string
JToken j2 = JToken.FromObject(new { QuuxId = 1234, QuuxName = "Sam" });

var str1 = JsonConvert.SerializeObject(j1);
var str2 = JsonConvert.SerializeObject(j2);

str1將是: "{\\"QuuxId\\":1234,\\"QuuxName\\":\\"Sam\\"}"

str2將為: {"QuuxId":1234,"QuuxName":"Sam"}

暫無
暫無

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

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