私はいくつかのXMLをとり、xml2jsパッケージを通してJSONを取得しています。私は属性のリストのために "$"を得ているが、解析はうまくいった。例えば: - 私はつもりです
<AddresseeInformation name="SOME COMPANY LTD"></AddresseeInformation>
は、私はMongoJSは私がDBにアップロードしようとすると、キー$は「$」で始めることはできませんと言っているとして、これをたくない
"AddresseeInformation":[{"$":{"name":"SOME COMPANY LTD"}}]
になり"$"のすべてのインスタンスを変更したり、それを止める方法を見つけ出す必要があります。ここで
は、私はすべてのインスタンスを変更しようとした正規表現である:その
JSONstring.replace('"$"'/g, '"init"');
.replace(/"$"/g, '"init"');
.replace(/'"$"'/g, '"init"');
なしに働いていない - 私はあなたたちにそれを送信しています - また、誰もが解析されたXML属性を停止する方法を知っている場合"$"の鍵で私は永遠にあなたを愛しています。
(あなた本当には注意が必要と
"$
で終わるキーを除外したい。そして、正規表現はおそらくとにかく最善の解決策ではない場合。値は"$"
。それとも/(?<!\\)"\$"\s*:/g
であることを起こる場合には技術的にそれはおそらく/"\$"\s*:/g
でなければなりませんが) 'var parser = new require( 'xml2js')。パーサー({attrkey: 'ATTR'});'? –正規表現はJSON(またはXML、HTML)のようなネストされた構造を正しく扱うことができないため、JSON文字列でregexを使用するとJSONを破る危険性が非常に高くなります。それをしないでください。 JSONを変更する場合は、まずそのデータ構造を解析し、そのデータ構造を変更するコードを作成し、その結果をJSONにシリアル化して戻します。ここでのより良いオプションは、 'xml2js'が属性に使うキーをデフォルトの' '$' '以外のものに変更することです。これはXPathが使用するものであり、 '' ATTR ''のような文字列とは対照的に、XMLでは自然に発生することができないので、 '' @ ''を推奨します。 – Tomalak