如何删除JSON字符串中的其他字符

时间:2017-10-15 10:23:27

标签: c# json

我有以下代码:

5^3

然后我按下面的代码序列化并将其保存在数据库中:

lastSeenAt

数据库中的结果如下:

  

{" Id":" 2","姓名":" \" Pixel xl \"&#34 ;,"价格":" 2000"}

所以当我读取该字符串并对其进行Desialize时,我的名字值低于

ProductDto newProduct = new ProductDto() { Id = 2, Name = "Pixel xl",Price = 2000}; 相反:private static string ToJson(object model) { JsonSerializerSettings jsonWriter = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, }; var type = model.GetType(); Dictionary<string, string> dic = new Dictionary<string, string>(); foreach (PropertyInfo item in type.GetProperties()) { var propName = item.Name; var propValue = item.GetValue(model); if (propValue == null) continue; propValue = JsonConvert.SerializeObject(propValue, Formatting.Indented, jsonWriter); dic.Add(propName, propValue.ToString()); } return JsonConvert.SerializeObject(dic); }

我想比较那些像这样但是beceasue&#34; \它们不相同。

\"Pixel xl\"

1 个答案:

答案 0 :(得分:0)

<强>首先

您似乎使用了错误的比较表达式。使用Object.Equal即表示newValueoldValue具有相同的对象。他们有相同的价值观#34;但不一样&#34;对象&#34;。

MSDN

  

如果当前实例是引用类型,则为Equals(Object)方法   测试参考相等性,并调用Equals(Object)方法   等同于对ReferenceEquals方法的调用。参考   等式意味着被比较的对象变量是指   同一个对象。

<强>第二

转换后的值有一个额外的双qoute \"。您可以使用.Replace("\"", "")手动删除它。您可能希望创建另一个比较表达式来比较您的值。 类似的东西:

if (newValue.Name == oldValue.Name && newValue.Id == oldValue.Id && newValue.Price == oldValue.Price)
{
    Console.WriteLine("Same");
}
else
{
    Console.WriteLine("Not Same");
}

示例代码: https://dotnetfiddle.net/mJgRsL

附注:

您可以参考此链接了解Value vs Reference类型对象的区别。 https://msdn.microsoft.com/en-us/library/4d43ts61(v=vs.90).aspx