1

我在以 [[ 开头的 JSON 数据上调用 DeserializeXmlNode() 收到 JsonSerializationException (即它是一个数组数组)。

哪个最好

  1. 将其转换为 XML 的方法?
  2. 是否还有其他无法转换为 XML 的 JSON 模式?

更新: XML 应该如何出现是一个有趣的问题。拥有一个数组数组意味着没有根节点(这是一个简单的插入),但子节点集也没有名称。我不确定这里有什么意义。这可能是在 JSON 上使用 XPath 的交易杀手。所以在这部分也是,有什么建议吗?

更新 2 - JSON 数据:

[["P0010001","NAME","state"],
["4779736","Alabama","01"],
["710231","Alaska","02"],
["6392017","Arizona","04"],
["2915918","Arkansas","05"],
["37253956","California","06"],
["5029196","Colorado","08"],
["3574097","Connecticut","09"],
["897934","Delaware","10"],
["601723","District of Columbia","11"],
["18801310","Florida","12"],
["9687653","Georgia","13"],
["1360301","Hawaii","15"],
["1567582","Idaho","16"],
["12830632","Illinois","17"],
["6483802","Indiana","18"],
["3046355","Iowa","19"],
["2853118","Kansas","20"],
["4339367","Kentucky","21"],
["4533372","Louisiana","22"],
["1328361","Maine","23"],
["5773552","Maryland","24"],
["6547629","Massachusetts","25"],
["9883640","Michigan","26"],
["5303925","Minnesota","27"],
["2967297","Mississippi","28"],
["5988927","Missouri","29"],
["989415","Montana","30"],
["1826341","Nebraska","31"],
["2700551","Nevada","32"],
["1316470","New Hampshire","33"],
["8791894","New Jersey","34"],
["2059179","New Mexico","35"],
["19378102","New York","36"],
["9535483","North Carolina","37"],
["672591","North Dakota","38"],
["11536504","Ohio","39"],
["3751351","Oklahoma","40"],
["3831074","Oregon","41"],
["12702379","Pennsylvania","42"],
["1052567","Rhode Island","44"],
["4625364","South Carolina","45"],
["814180","South Dakota","46"],
["6346105","Tennessee","47"],
["25145561","Texas","48"],
["2763885","Utah","49"],
["625741","Vermont","50"],
["8001024","Virginia","51"],
["6724540","Washington","53"],
["1852994","West Virginia","54"],
["5686986","Wisconsin","55"],
["563626","Wyoming","56"],
["3725789","Puerto Rico","72"]]
4

1 回答 1

3

我有一系列对象,形状如下:

[{foo:bar}, {foo:bar2}]

...我为解决这个问题所做的就是首先像这样包装文本:

public XmlDocument JsonArrayToXml(string json)
{
    var wrappedDocument = string.Format("{{ item: {0} }}", json);
    var xDocument = JsonConvert.DeserializeXmlNode(wrappedDocument, "collection");
    return xDocument;
}

这不会引发错误。XML 的形状类似于:

<?xml version="1.0" encoding="UTF-8"?>
<collection>
    <item>
        <foo>bar</foo>
    </item>
    <item>
        <foo>bar2</foo>
    </item>
</collection>
于 2014-12-24T13:46:23.603 回答