【发布时间】:2016-10-18 01:41:46
【问题描述】:
我正在尝试将一些 JSON 转换为 XML,但在此之前我需要更改一些属性才能成功转换。
JSON 结构中的某些属性以数字开头,当我尝试转换为 XML 时,我收到错误消息,因为 XML 不允许以数字开头的标签。
因此,一种对我有用的解决方案是通过向属性添加前缀来更改以数字开头的那些属性名称。
我一直在尝试做这样的事情:
public string ChangeNumericalPropertyNames(JsonReader reader)
{
JObject jo = JObject.Load(reader);
foreach (JProperty jp in jo.Properties())
{
if (Regex.IsMatch(jp.Name, @"^\d"))
{
string name = "n" + jp.Name;
//Logic to set changed name
}
}
return "Here I want to return the entire json string with changed names";
}
当我尝试这个时:
jp.Name = name;
Visual Studio 说这是不可能的,因为 jp.Name 是只读的。
有人知道如何实现这个解决方案吗?
【问题讨论】:
-
替换json字符串中的属性名,然后序列化json。
-
不是那么简单,因为我不知道如何设置名称。不可能做类似 jp.Name = name 的事情,因为 jp.Name 是只读的
-
获取您的 json 字符串并修改它 - idk,执行
Regex.Replace()然后序列化修改后的字符串。