使用ASP.Net Web API中的newtonsoft.json
时,Y是否以奇怪的方式序列化?
var s = JsonConvert.SerializeObject(request, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
输出字符串如下,
"{\"head\":{\"version\":\"1.0\",\"serial\":\"20140102,6,125\",\"skinId\":\"Test\""
我想将Json format
字符串发送给第三方休息服务(他们只接受Json format
)。
非常感谢任何帮助。
干杯 小号
答案 0 :(得分:1)
这里没有什么可担心的。这是正确的序列化对象json。它看起来是这样的,因为你是在视觉工作室中通过悬停变量来查看它的值来查看它,因为在c#中“用于表示字符串中的”。当您将此值写入文本文件(仅用于测试实际值)时,您将看到它的实际值是什么:
string json="{\"head\":{\"version\":\"1.0\",\"serial\":\"20140102,6,125\",\"skinId\":\"Test\"";
File.WriteAllText("c:\\tests on.txt",json) ;
你会在文件中看到你真正想要的json。
答案 1 :(得分:0)
这是因为你已将它序列化了两次,你可以发布更多代码或者完全跳过调用SerializeObject
答案 2 :(得分:0)
我怀疑你还在寻找答案,但我的解决方法是用Newtonsoft创建一个JObject并传递它。
或者:
JObject jBytes = Object.Parse(JsonConvert.SerializeObject(myObject, MyDateTimeFmtString);
或
JObject jBytes = JObject.FromObject(myObject, MyJsonSerializer);
第一个案例是我的第二个选择,但我认为Newtonsoft中存在一个错误,其中JObject.FromObject忽略了JsonSerializer中的DateFormatString。