2012-01-09 8 views
1

私はjson_encodeから次の出力を文字列を取得:私は以下でそれを解析しようとjson_encodeの出力()スラッシュを含む文字列は、JSON.parse(で解析することはできません)

["images\/zara\/shoes\/thumbnail", 
"images\/hermes\/shoes\/thumbnail", 
"images\/hermes\/shoes\/thumbnail"] 

を私はこれを防ぐにはどうすればよい

var listofshoes = JSON.parse(data); 
for (var i in listofshoes) { 
    $('#pgwrapid').append($("<p>").text(listofshoes[i])); 
} 
ERROR: JSON.parse: unexpected character [Break On This Error] return window.JSON.parse(data);` 

:コードは、それは私にエラーを与えて?

答えて

0
$str = '["images\/zara\/shoes\/thumbnail", 
"images\/hermes\/shoes\/thumbnail", 
"images\/hermes\/shoes\/thumbnail"]'; 
$rst = json_decode($str); 
//print_r($rst); 
foreach($rst as $val) { 
    echo $val; 
    echo "<br>"; 
} 

お試しください。

+1

コードが機能しない – sajid

+0

@sajid:エラーが発生しましたか? –

1

バックスラッシュのためではありません。 JSONLintは正しく解析します。これは、JSON.parse()に文字列パラメータが必要で、配列を渡すためです。

To convert a JSON string into a JavaScript object, you simply pass the JSON into the JSON.parse() method, like this:

var jsObject = JSON.parse(jsonString);

https://developer.mozilla.org/En/Using_native_JSON#Parsing_JSON.C2.A0stringsはまた、ここに述べた:JSON.parse unexpected character error

例:

var data = ["images\/zara\/shoes\/thumbnail", 
"images\/hermes\/shoes\/thumbnail", 
"images\/hermes\/shoes\/thumbnail"]; 

data_string = JSON.stringify(data); 

console.log(JSON.parse(data_string)); // no error 
console.log(JSON.parse(data));   // will show error 
0

私はどこか省略コードでのAJAX呼び出しがあると思います。 jQuery AJAXメソッドはJSON文字列をデコードしますので、JSON.parse()は必要ありません。

関連する問題