C#에서 (Newtonsoft 's) JSON.Net 라이브러리를 사용하고 있으며 기본 XML 변환의 단일 부분을 사용자 정의하려고합니다. 예를 들어JSON.Net을 사용하여 사용자 정의 JSON에서 XML로 변환
, 나는 다음과 같은 JSON 문자열이 있다고 가정보다, 배열의 XML 변환을 변경하고자한다면 : 나는 JSON.Net의 기본 변환기를 사용하여 XML로 변환하는 경우
{
"object":
{
"a":
{
[
"d",
"e",
"f"
]
}
}
}
, 내가 얻을 :
<object>
<a special:type="array">
<element>d</element>
<element>e</element>
<element>f</element>
</a>
</object>
은 어떻게 든 기존 걸릴 수 있습니다 :
<object>
<a>d</a>
<a>e</a>
<a>f</a>
</object>
는하지만, 나는 그것이로 변환 할 변환 방법 및 조금 변경?
XML과 JSON은 모두 트리 기반 구조이므로 파서를 모듈화해야합니다.
protected override XmlNode ToXmlNode(JsonNode jNode)
{
if (jNode.Type == JsonType.Array)
{
XmlNode xNode = this.XDocument.CreateElement(jNode.Name)
foreach (JsonNode jSub in jNode.Children)
{
var newJSub = jSub.Clone();
newJSub.Name = "element";
xNode.AppendChild(this.ToXmlNode(newJSub));
}
return xNode;
}
else
return base.ToXmlNode(jNode);
}
이
누군가가 할 수있는 것을 알고 있나요 (I 닷넷 2.0을 사용하고 있습니다) 그래서 나는의 정신에의 변환 함수를 재정의하는 데 사용할 수있는 클래스를 찾고 있어요 도움?
XmlNodeConverter 클래스에서 필요한 것을 재정의 할 수있는 방법이 없습니다. JsonTextWriter의 상속자를 만들어 XmlNodeConverter에 전달해야 할 가능성이 높습니다. – Brannon