[英]Newtonsoft.Json how to parse json property with smart quotes
我有 JSON 包含引号内的属性“”这里是一个例子
{
"data1" : "value",
“data2” : {
property : "property value"
}
}
我的dto:
public class Data
{
public string Data1 {get;set;}
public object Data2 {get;set;}
}
和反序列化代码
static void Main(string[] args)
{
var jsonString = " { \"data1\" : \"value\",“data2” : {property: \"property value\"}} ";
var data = JsonConvert.DeserializeObject<Data>(jsonString);
}
在反序列化时,我收到一个错误:
'Invalid property identifier character: “. Path 'data1', line 1, position 23.'. Peace of stack trace at Newtonsoft.Json.JsonTextReader.ParseProperty()
at Newtonsoft.Json.JsonTextReader.ParseObject()
at Newtonsoft.Json.JsonTextReader.Read()
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject ....
我有关于如何修复它的任何解决方法,也许有可能额外添加另一个属性标识符? 提前致谢。
您 JSON 只是无效(您可以使用验证器检查)
通过替换那些花哨的引号它变得有效,所以你应该考虑在解析它之前应用替换?
jsonString = jsonString.Replace('“', '"');
但最好的办法是在序列化过程中解决这个问题,因为 JSON 是无效的,并且会导致到处出现问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.