我有一个用引号“”包含属性的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 ....如果有任何解决方法来修复它,也许有可能额外添加另一个属性标识符?提前谢谢。
发布于 2021-02-24 20:38:16
您的JSON是无效的(您可以使用validator进行检查)
通过替换那些花哨的引号,它就变得有效了,所以您可能应该考虑在解析它之前应用替换?
jsonString = jsonString.Replace('“', '"');但最好的办法是在序列化期间修复该问题,因为该JSON是无效的,并且会在任何地方都会导致问题。
https://stackoverflow.com/questions/66351031
复制相似问题