問題が発生し、それが農家は、この問題がより迅速に解決策を見つけるコードを満たすために願って、深くハードで来るので、次の要約を行うために、解決するために二日かかりました!
VAR jsonArr = [{COL:TO_CHAR(HZRQ、 'YYYYMM')、タイプ:=、値:201909}、{COL:RQ、タイプ:=、値:201909}]。
あなたは、JSONオブジェクトに変換します。JSON JSON文字列オブジェクトに変換し、JSON.parseを()構文解析を与えられている使用して、この二重引用符JSON文字列なしで上記のキー名のJSON.parse()メソッドを使用し、解決することはできません。これは非常に厄介な問題となっています。だから、ほとんどの時間は、あなたが問題は発生しませんにもかかわらず、まだ良い標準予防を使用するようにしてください。
キーコードに続いて、二重引用符で
jsonArr = jsonArr.replace(/(?:\ S * [ '"] *)([-ZA-Z0-9] +)(:?[' "] * \ S *):?/ gであり、" \ "$ 1 \": ");
jsonArrは:または、次の方法を使用置き換えます(/ (\ S * ?{\ S * ?\ S | * ?、\ S * ?)([ "「])([A-ZA-Z0-9] +を? )([ ' '])/ G、? "1 $。" $ 3」: ' )。
そこに上記の正規表現に置き換えてもよい結果値のための特別な記号ではありませんが、場合はもちろん、現在のI、値に遭遇した問題のために=値が含まれている_ <>、「特殊記号など私は、彼らが唯一の解決に最も愚かな方法を考えることができ、より良い正規表現を交換することが判明していません
jsonArr = jsonArr.replace(/ "/ gで、 "\" \" ")( "\"/ G "/を" \")を交換} /(置き換え/ gで、 "\"}。 、 ")(交換/}] / gであった。 "\"}]")。
console.log( "jsonArr ="、evalの(jsonArr));または使用するvar JSON =のeval( '(' + jsonArr + ')');
ケース
var jsonArr2 = [{
"Color": 超窄边IPS,
"SkuId": 1365289,
"Size": 27英寸 }, { "Color": 21:9超宽IPS曲面, "SkuId": 1742140, "Size": 29英寸 }, { "Color": 17英寸(TN,5:4方屏), "SkuId": 1032147, "Size": 17英寸 }];
とコンテンツので「:」
-
(\w+):
、取り扱いを誤っ"21:9超宽IPS曲面"
-
[{,]\s*(\w+):
、取り扱いを誤っ"17英寸(TN,5:4方屏)"
だから、JSON文字列よりも多くのためにあなたは、二重引用符で値の値を大きくするために、最も愚かな方法を使用する必要があります