2015-05-29 47 views
-2

我根本没有使用JSON的经验,但不幸的是我有一个web服务返回数据给我。我需要将JSON中的数据格式化为XML,以便我可以在这里导入到我们自己的系统中。JSON反序列化(NewtonSoft JSON.NET)到XML失败

我收到来自Web服务的数据格式为:

{ 
"httpStatusCode": 200, 
"messages": [], 
"succesfulResponses": [ 
{ 
    "position": 0, 
    "response": { 
    "dln": "AAAPY459037VB9SV", 
    "dvlaServiceVersion": "1", 
    "hubServiceVersion": "1.0.0.0", 
    "dvlaProcessingDate": "2014-12-22T14:03:43.557Z", 
    "hubProcessingDate": "2015-05-29T16:50:51.4364004+01:00", 
    "licence": { 
     "status": "FC", 
     "validFrom": "1986-01-22", 
     "validTo": "2017-09-02", 
     "directiveIndicator": 0, 
     "entitlements": [ 
     { 
      "code": "A", 
      "validFrom": null, 
      "validTo": null, 
      "priorTo": false, 
      "type": "F", 
      "restrictions": [] 
     } 
     ], 
     "endorsements": [] 
    }, 
    "httpStatusCode": 200, 
    } 
    "messages": [] 
} 
], 
"errorResponses": [] 
} 

我试图用使用Newtonsoft JSON.NET程序如下:

Dim doc As XmlDocument = DirectCast(JsonConvert.DeserializeXmlNode(sAnswer, "root"), XmlDocument) 

不幸的是,返回此:

2000AAAPY459037VB9SV11.0.0.02014-12-22T14:03:43.557Z2015-05-29T16:59:08.6833762 + 01:00FC1986-01-222017-09-020AfalseF200

这对我来说毫无用处,我需要它来格式化XML以完成节点名称/元素,以便我可以正确导入它,任何人都能够指出我正确的方向吗?

干杯,

Ĵ

+0

JSON字符串表示的序列化数据,你不能只是将它转换为XML反序列化。另外,请确保您复制/粘贴了所有json数据 - 因为发布它无效(请参阅jsonlint.com) – Plutonix

+0

如果您还没有这样做,我会查看一些对此[早期问题]的回复( http://stackoverflow.com/questions/814001/convert-json-string-to-xml-or-xml-to-json-string) – ChicagoMike

+0

嗨@Plutonix正是完整的代码,所以返回的数据不能是有效的。我被告知其他地方的问题是JSON没有根元素。 – Lynchie

回答

0

托管到JSON正确地格式化为XML。我增加了以下我返回JSON字符串:

jSON = "{" & vbCr & vbLf & " '?xml': {" & vbCr & vbLf & " '@version': '1.0'," & vbCr & vbLf & " '@standalone': 'no'" & vbCr & vbLf & " }," & vbCr & vbLf & " 'root': " + sAnswer 

然后指定由“根”