【发布时间】:2019-03-21 19:36:11
【问题描述】:
有没有办法在没有任何[ ] 的情况下生成List <object> 的序列化字符串
我们正在使用以下代码进行序列化
JsonConvert.SerializeObject(data)
[
{
"SessionId": "6d1ea52b-9f0c-4c32-835d-49e6db22efee",
"ComponentName": "WebRole",
"Message": "X"
},
{
"SessionId": "6d1ea52b-9f0c-4c32-835d-49e6db22efee",
"ComponentName": "WebRole",
"Message": "Y"
},
{
"SessionId": "6d1ea52b-9f0c-4c32-835d-49e6db22efee",
"ComponentName": "WebRole",
"Message": "Z"
},
{
"SessionId": "6d1ea52b-9f0c-4c32-835d-49e6db22efee",
"ComponentName": "WebRole",
"Message": "XY"
},
{
"SessionId": "6d1ea52b-9f0c-4c32-835d-49e6db22efee",
"ComponentName": "WebRole",
"Message": "XYZ",
"Payload": "X>>1"
}
]
有没有办法删除上面的 [ 和 ] ,我有解决方法可以在序列化字符串上调用 Trim('[') 和 Trim(']')。是否有任何从 NewtonSoft 开箱即用的设置删除 [ 和 ],我也不想使用匿名对象。
【问题讨论】:
-
SessionId 属性后的 1、2、3、4 数字是拼写错误还是存在于您的数据中?
-
如果删除方括号
[],那么生成的 JSON 将无效。您可以在此处复制并粘贴您的输出 json 检查json2csharp.com -
我们不会在 C# 中使用反序列化函数。相反,我们将使用一些工具来摄取数据,以插入 SQL/Data Store 等。
-
你会使用
Substringlike =>var newStr = jsonStr.Substring(1, jsonStr.Length - 1); -
如果你告诉
newtonsoft从 json 中删除方括号,那么它会回复你 我被编程为只生成有效的 JSON,那么我怎样才能给你无效的 JSON? 所以我的建议是使用Trim或Substring进行字符串操作