1

私のアプリケーションでは、テキストフィールドに「名前」として値を入力すると、フレームワークは次のような文字列を作成します(これは制御できません):

"[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]"

この文字列は JSON.parse() メソッドに渡され、あいまいな名前フィールドが原因でエラーが発生します。

\"名前\":\"私の\"名前\"

var str = JSON.parse("[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]")

これにより、JSON 例外が発生します

文字列でできることはありますか:

"[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]"

JSON.parse メソッドで有効にするために二重引用符をエスケープmy " nameします。my \" name

JSON 文字列を制御できません。名前を自分の名前として渡すだけで、フレームワークは JSON.parse() に渡される文字列を作成します。

4

2 に答える 2

0

一連のtext交換を経験しました。これを試すことができます:

var str = "[{\"id\":\"201500000001002\",\"name\":\"my\"name\",\"colorCode\":\"\",\"version\":\"11\",\"nodeOrder\":\"1\"}]";

JSON.parse(
str.replace(/\\/i,"").
replace(/{"/g,"{'").
replace(/":"/g,"':'").
replace(/","/g,"','").
replace(/"}/g,"'}").
replace(/'/g,"\@@@").
replace(/"/g,"\\\"").
replace(/@@@/g,"\"")
);

JSON目的の配列が返されます

于 2015-12-23T06:48:50.827 に答える