【发布时间】:2019-08-19 01:27:46
【问题描述】:
必须在 json 中写入“坐标”属性的值,而不需要为以下几行加上连字符,而不是使用 ToString()(不将值转换为字符串)。想要的结果如下所示。
{
"Id": null,
"Style": "1234",
"Geometry": {
"Type": "Polygon",
"Coordinates": [[[47541.470259278358,6846.8710054924586],[47540.359922950891,6845.4552435801925],[47541.470259278358,6846.8710054924586]]],
"Properties": [
{
"PointType": "Straight"
},
{
"PointType": "Straight"
},
{
"PointType": "Straight"
}
]
}
}
但不是:
{
"Id": null,
"Style": "1234",
"Geometry": {
"Type": "Polygon",
"Coordinates": "[[[47541.470259278358,6846.8710054924586],[47540.359922950891,6845.4552435801925],[47541.470259278358,6846.8710054924586]]]",
"Properties": [
{
"PointType": "Straight"
},
{
"PointType": "Straight"
},
{
"PointType": "Straight"
}
]
}
}
序列化json中对应类对象的函数:
JToken ToJson()
{
using (var writer = new JTokenWriter()) {
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(writer, this);
return writer.Token;
}
}
【问题讨论】:
-
“一行”是指一行C#代码还是一行JSON?
-
一行JSON
-
请提供几行代码并告诉我们您使用哪个解析器进行序列化。
-
JSON 中的空格无关紧要,所以无论是嵌套数组打印一行还是多行,从解析器/编写器的角度来看,JSON 仍然是相同的 JSON。只需正常编写 JSON 即可。您只需要一种自定义方式来打印您的 JSON。
-
默认情况下,json 与每个子数组的换行符一起显示,并在以下几行中显示新的单元格。是否可以删除特定属性(“坐标”)的连字符?
标签: c# json jsonparser