已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
昨天关门了。
Improve this question
我有一个关于在XML中正确表示JSON字符串数组的问题。我想构建以下JSON数据(预期的API输入JSON):
{
"relatiesoort": [
"string"
],
"modifiedOn": "string",
"relatiecode": 0,
"naam": "string",
"vestigingsAdres": {
"contactpersoon": "string",
"straat": "string",
"postcode": "string",
"plaats": "string",
"land": {
"id": "00000000-0000-0000-0000-000000000000",
"uri": "string"
}
},
"correspondentieAdres": {
"contactpersoon": "string",
"straat": "string",
"postcode": "string",
"plaats": "string",
"land": {
"id": "00000000-0000-0000-0000-000000000000",
"uri": "string"
}
},
"telefoon": "string",
"mobieleTelefoon": "string"
}
我最初希望以XML格式构建它,然后将其转换为JSON。
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<relatiesoort>string</relatiesoort>
<modifiedOn>string</modifiedOn>
<relatiecode>0</relatiecode>
<naam>string</naam>
<vestigingsAdres>
<contactpersoon>string</contactpersoon>
<straat>string</straat>
<postcode>string</postcode>
<plaats>string</plaats>
<land>
<id>00000000-0000-0000-0000-000000000000</id>
<uri>string</uri>
</land>
</vestigingsAdres>
<correspondentieAdres>
<contactpersoon>string</contactpersoon>
<straat>string</straat>
<postcode>string</postcode>
<plaats>string</plaats>
<land>
<id>00000000-0000-0000-0000-000000000000</id>
<uri>string</uri>
</land>
</correspondentieAdres>
<telefoon>string</telefoon>
<mobieleTelefoon>string</mobieleTelefoon>
</root>
.....然后我使用NewtonSoft.Json将其翻译回Json并将其提供给API。
但问题是,如果我把它转换回Json(这也可以用这个网站:https://www.freeformatter.com/xml-to-json-converter.html)我得到了以下结果:
{
"relatiesoort": "string",
"modifiedOn": "string",
"relatiecode": "0",
"naam": "string",
"vestigingsAdres": {
"contactpersoon": "string",
"straat": "string",
"postcode": "string",
"plaats": "string",
"land": {
"id": "00000000-0000-0000-0000-000000000000",
"uri": "string"
}
},
"correspondentieAdres": {
"contactpersoon": "string",
"straat": "string",
"postcode": "string",
"plaats": "string",
"land": {
"id": "00000000-0000-0000-0000-000000000000",
"uri": "string"
}
},
"telefoon": "string",
"mobieleTelefoon": "string"
}
正如您所看到的,“relatiesoort字段”不再是JSON数组,API会给出错误,因为JSON不是预期的格式。我想要的是以这样一种方式构建XML,即relatiesoort字段在转换回JSON后仍然是JSON数组。
为了实现这一点:我应该将此字段格式化为XML格式吗?:
<relatiesoort>
<element>klant</element>
</relatiesoort>
如何使用NewtonSoft.Json库来实现这一点?
2条答案
按热度按时间atmip9wb1#
没有任何东西指出relatiesort是一个数组,你不能自动地把字符串转换成字符串数组,要自动转换它应该是
在这种情况下,你需要一个带有relatiesoort属性的xml属性数组的c#类。因此,唯一的正确方法是,你需要将XML转换为c#并序列化为一个json字符串。如果你没有这个类,另一种方法是解析你的json并更正值
Json
gwo2fgha2#
您应该查看一下this bit of doc
现在,从我所看到的,
vestigingsAdres
和correspondentieAdres
看起来好像它们是同一类型的类对象,但是考虑到NewtonSoft的工作方式,它们很可能不会被分组到一个集合下。我可以预见,您可能希望它可能是Dictionary<string, yourObjHere>
,所以 * 如果 * 是这样的话,您需要在内存中构造对象,* 然后 * 将其序列化为JSON。要实现这一点,如果您已经对类对象建模,则可以使用JsonConvert.DeserializeObject<yourObj>(jsonString);
如果您对直接转储到XML没有意见,那就不用担心