gpt4 book ai didi

c# - JSON 字符串在 JSON.parse 中失败,但通过了 JsonConvert.DeserializeObject

转载 作者:行者123 更新时间:2023-11-28 08:10:29 25 4
gpt4 key购买 nike

我的 C# 类是

public class Man
{
public string name {get; set;}
}

反序列化的字符串是这样的

var content = "[{name: \"john\"}]"

现在,在保存到数据库之前,我正在检查字符串是否可以反序列化为 C# 对象,然后存储它。本次检查通过

JsonConvert.DeserializeObject<List<Man>>(content)

所以我将此字符串保存在数据库中,但是当我对 JavaScript 中保存的字符串执行 JSON.parse 时,它​​会因错误而崩溃

JSON.parse("[{name: \"john\"}]")
SyntaxError: Unexpected token n

现在我明白,通过在键(“名称”)周围加上引号,可以解决这个问题。这是在 JSON.parse 和 JsonConvert.DeserializeObject 中都有效的正确字符串

var content = "[{\"name\": \"john\"}]

问题是我在数据库中有很多这样的格式错误的字符串,仅在 JSON.parse 上崩溃。转换此类字符串以便 JSON.parse 正常工作的最佳方法是什么?比 string.replace 更好的东西请注意,与给出的示例相比,实际字符串相当大且复杂。

最佳答案

您可以使用 using Newtonsoft.Json; 它将 DeserializeObject 对象,甚至是 var content = "[{name:\"john\"}]"中的 json 数据 格式。

值包含如下数据:{StyleId:"1710","SelectedItemToColorMap":{1391:"583",21531:"7733"}}

 var jsondata = JsonConvert.DeserializeObject(value);

DeserializeObject 之后,jsondata 看起来像

{
"StyleId": "1710",
"SelectedItemToColorMap": {
"1391": "583",
"21531": "7733"
}
}

关于c# - JSON 字符串在 JSON.parse 中失败,但通过了 JsonConvert.DeserializeObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com