-3

編集:指摘したように、次の JSON オブジェクトがあります。

Object {name: "red", percent: 36, rgb: "rgb(216,28,63)"} 

パーセント数と RGB 数を 2 つの個別の変数に抽出する必要があります。

私が試してみました:

var noDivsToColour = JSON.parse(availableColours[k], "percent");

availableColours[k] は私のオブジェクトを参照していますが、「予期しないトークン 0」というエラーが表示されます - 誰でも助けてもらえますか?

4

3 に答える 3

2

JSON 文字列ではなく、実際の JavaScript オブジェクトがあるようです。(よくある誤解です。たとえば、JSON はクライアントとサーバーの間でデータ構造を転送するために使用されます。JSON 自体はデータ型ではありません。)

ドット表記を使用して、オブジェクト内の要素にアクセスできます。

var percent = availableColours[k].percent;
var color = availableColours[k].rgb;
于 2013-05-22T17:11:45.650 に答える
2

これは JSON 文字列でも JSON オブジェクトでもありません。その文字列を正規表現で解析しようとするのではなく、ソース (その文字列が最初に生成された場所) で問題を解決する必要があります。

文字列は必要ありません:

'Object {name: "red", percent: 36, rgb: "rgb(216,28,63)"}'

代わりにこれが必要です:

'{"name": "red", "percent": 36, "rgb": "rgb(216,28,63)"}'

次に、適切にJSON.parseできます。

var json = '{"name": "red", "percent": 36, "rgb": "rgb(216,28,63)"}';
var color = JSON.parse(json);

プロパティにアクセスします。

color.name;
color.percent;
color.rgb;
于 2013-05-22T17:14:33.510 に答える
-1

これを試すことができます:

var obj = JSON.parse(str);
var percent = obj.percent;

これにより、json 文字列が取得されて JavaScript オブジェクトに変換され、そこからパーセント フィールドを簡単に抽出できます。

編集:指摘されているように、これは有効な JSON 文字列ではない可能性があります。以下で解決します。

var str = 'Object {name: "red", percent: 36, rgb: "rgb(216,28,63)"}';
var delimit1 = "percent: ";
var delimit2 = ",";
var tmp = str.substring(str.indexOf(delimit1) + delimit1.length);
var token = tmp.substring(0, tmp.indexOf(delimit2));
alert(token);
于 2013-05-22T16:57:43.907 に答える