ノードバージョン6.0.0を使用しています。私は、JSONオブジェクトをJSON文字列として解析したい。文字列にはオブジェクトの配列が含まれます。ノードのJSON.parseで配列を解析できません
しかし、JSON.parse
は、どのような種類の配列も正常に変換していません。 内容に関係なく、すべての配列に対して空の配列を返します。
EDIT:これは単なるコンソールの問題ではありません。私はその解析されたデータをデータベースに保存します。また、空の配列が表示されます。コンソールによって行われる魔法の技はありません。
更新:一部の外部コードによって配列定義が壊れています。すべての配列定義は空の配列になりました。原因をデバッグする、すべての応答に感謝します。
例:他のすべてのために失敗しました
contacts = '{"data": [{"p": "", "e": "", "n": "Veera Sundar"}]}' // This is my example JSON String. Rest are hit and trials.
> JSON.parse(contacts)
{ data: [] }
> a = '{"data": [{"p": ""}]}'
'{"data": [{"p": ""}]}'
> JSON.parse(a)
{ data: [] }
> a = '{"data": [1,2,3]}'
'{"data": [1,2,3]}'
> JSON.parse(a)
{ data: [] }
> a = '{"d": [1,2,3]}'
'{"d": [1,2,3]}'
> JSON.parse(a)
{ d: [] }
> a = '{"d": {"c":1}}'
'{"d": {"c":1}}'
> JSON.parse(a)
{ d: { c: 1 } } // Works for objects
> a = '{"d": {"c":[1]}}'
'{"d": {"c":[1]}}'
> JSON.parse(a)
{ d: { c: [] } }
> a = '{"d": {"c":["b","e"]}}'
'{"d": {"c":["b","e"]}}'
> JSON.parse(a)
{ d: { c: [] } }
> a = '{"d": {"c":[{"b":1}]}}'
'{"d": {"c":[{"b":1}]}}'
> JSON.parse(a)
{ d: { c: [] } }
> a = '{"d": {"c":["undefined"]}}'
'{"d": {"c":["undefined"]}}'
> JSON.parse(a)
{ d: { c: [] } }`
!!
私が間違っていることを教えてください。これらの例はすべて、通常のコンソール(Chromeコンソールなど)で動作します。
コンソール出力を誤解している可能性があります。 '{data:[]}'の配列がコンソール上でハイパーリンクされているのが見えますか?クリックするとその内容が表示されます。配列が空であると誤解しないでください。 – trincot
私はちょうど何も間違っているあなたのコードを走らせた、trincotはちょうど誤解を招くようなプロンプトを表示しているかもしれません。結果は次のとおりです: >連絡先= '{"データ":[{"p": ""、 "e": ""、 "n": "Veera Sundar"}}}' '{"data":[ JSON.parse(contacts) {data:[{p: ''、e: ''} {{"p": "e": ""、 "n": "Veera Sundar"}} 、{{"p": "}}}"、 "n: 'Veera Sundar'}]} a = '{" data ":[{" p ":"}}} " " ' > JSON.parse(a) {data:[{p:' '}]} – akazemis
クロームコンソールには完全な配列が表示されますが、replは認識しません。 私はutil検査を行いましたが、それは実際に値を表示しますが、これはうんざりです:> util.inspect(JSON.parse(contacts)) '{data:[{p:\' \ '、e:\' \ ' 、n:\ 'Veera Sundar \'}]} ' > JSON.parse(contacts) {data:[]} > a = JSON.parse(contacts) {data:[]} > util.inspect (a) '{データ:[{p:\' \ '、e:\' \ '、n:\' Veera Sundar \ '}]' –