Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换为XML的JSON无效_Json_Xml_Json.net - Fatal编程技术网

转换为XML的JSON无效

转换为XML的JSON无效,json,xml,json.net,Json,Xml,Json.net,我正在打电话给第三方restAPI并获取错误的JSON修复JSON的最佳方法是什么: { "site": { "name":{"2":"stringstuff"}, "primaryname":{"ref":2,"dname":"stringstuff"} } } 正如您所看到的,这个名称实际上应该看起来像主名称。转换为XML时,如下所示: <sites> <name> <2>st

我正在打电话给第三方restAPI并获取错误的JSON修复JSON的最佳方法是什么:

{
"site": {
        "name":{"2":"stringstuff"},
        "primaryname":{"ref":2,"dname":"stringstuff"}       
    }
}
正如您所看到的,这个名称实际上应该看起来像主名称。转换为XML时,如下所示:

<sites>
    <name>
        <2>stringstuff</2>
    </name> 
    <primaryname>   
        <ref>2</ref>    
        <dname>stringstuff</dname>  
    </primaryname>
</sites>
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.w3.org/2005/xpath-functions">
    <map key="site">
        <map key="name">
            <string key="2">stringstuff</string>
        </map>
        <map key="primaryname">
            <number key="ref">2</number>
            <string key="dname">stringstuff</string>
        </map>
    </map>
</map>

弦乐
2.
弦乐
有没有比转换为对象、以这种方式固定数据然后将对象转换为XML更简单的方法来解决这个问题


(注意,我使用的是Newtonsoft JSON.Net库,要求它必须以XML形式从我的web服务返回)。

我不确定您为什么说这个JSON无效。我觉得很好。我可以使用XPath 3.1 json-to-XML()函数将其转换为XML,结果如下:

<sites>
    <name>
        <2>stringstuff</2>
    </name> 
    <primaryname>   
        <ref>2</ref>    
        <dname>stringstuff</dname>  
    </primaryname>
</sites>
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.w3.org/2005/xpath-functions">
    <map key="site">
        <map key="name">
            <string key="2">stringstuff</string>
        </map>
        <map key="primaryname">
            <number key="ref">2</number>
            <string key="dname">stringstuff</string>
        </map>
    </map>
</map>

弦乐
2.
弦乐

您可以使用XSLT轻松地将其转换为您想要的任何其他内容

您所说的解决此问题的方法是否比转换为对象更简单。。。?你现在在做什么,为什么不起作用?第三方不可能修复他们的API吗?这意味着有一个过程需要更少的步骤,而不是创建一个自定义对象来保存JSON,然后修复,然后转换为XML。目前,我们正在循环一定数量的时间,任何xml标记都是数字的,我们正在调整字符串,然后重新加载xml(当数字标记大于循环时,最终会中断,因为标记基于不断增加的id号)。第三方修复速度非常慢,我们无法等待。