2016-08-11 4 views
0

は私のコードは(JSONが文字列である)である:JSONからXMLをinvalideにする理由は何ですか?ここで

String xml = XML.toString(new JSONObject(json)); 

JSON:

{ 
    "components": { 
     "header": "generic", 
     "body": "generic", 
     "footer": "watchlist" 
    }, 
    "featuredArticle": { 
     "title": "Test title", 
     "text": "test text." 
    }, 
    "header": { 
     "ref": "" 
    }, 
    "body": { 
     "ref": "" 
    }, 
    "footer": { 
     "ref": "" 
    } 
} 

XML:

<components> 
    <footer>watchlist</footer> 
    <header>generic</header> 
    <body>generic</body> 
</components> 
<footer> 
    <ref /> 
</footer> 
<header> 
    <ref /> 
</header> 
<featuredArticle> 
    <text>test text.</text> 
    <title>Test title</title> 
</featuredArticle> 
<body> 
    <ref /> 
</body> 

私はテキストメイトでJSONを検証するとき、それはパスしたが、 XMLはそうではありません。無効なXMLマークアップ言語で

+0

どこから 'XML'がありますか?どのパッケージに属していますか – Bill

+0

XMLの周囲にはタグはありません。すべてのセクションはトップレベルにあります –

+0

@quidproquo 'org.json.XML' – Nelson

答えて

2

有効なXMLはroot elementを持っている必要があります。あなたの例には1つもありません。

次JSON(追加ルート要素"data")を試してみてください。

{ 
    "data": { 
     "components": { 
      "header": "generic", 
      "body": "generic", 
      "footer": "watchlist" 
     }, 
     "featuredArticle": { 
      "title": "Test title", 
      "text": "test text." 
     }, 
     "header": { 
      "ref": "" 
     }, 
     "body": { 
      "ref": "" 
     }, 
     "footer": { 
      "ref": "" 
     } 
    } 
} 
0

は、あなただけの要素を保持しているルート要素を必要とし、ここで試してみてください。http://www.xmlvalidation.com/index.php?id=1&L=2 と、コンポーネントのノードを閉じるまで、XMLがOKになることを確認...

enter image description here

<root> 
    all the xml content 
</root> 
+0

いいえ。 json構造を見て、xmlはそれをよく模倣します。 – njzk2

+0

@ njzk2あなたは正しいです、私は間違いを修正します...ありがとう –

関連する問題