Es hängt davon ab, was der Wert in diesem Element ist (ein unbekannter), ist es in ()
Verpackung ist der sichere Weg für möglicherweise von kein Eingang zu berücksichtigen da sein.
Edit: Jetzt, wo Sie es JSON geklärt haben, ist dies nicht gültig:
eval('{"10000048":"1","25000175":"2","25000268":"3"}');
Aber das wird in einem gültigen Objekt führt zurückgegeben werden:
eval('({"10000048":"1","25000175":"2","25000268":"3"})');
//effectively:
eval('return {"10000048":"1","25000175":"2","25000268":"3"};');
Bild in einem JavaScript-Datei:
<script type="text/javascript">
{"10000048":"1","25000175":"2","25000268":"3"}
</script>
Dies wird fehlschlagen, es ist nur ein Objekt inline deklariert, aber nicht die richtige Syntax ... die Der gleiche Grund ein Server hat, um JSONP zu unterstützen, damit es funktioniert.
Ein bisschen tangential zur Frage, aber da Sie jQuery sind darunter, dann kann man auch verwenden $.parseJSON()
(die den nativen JSON.parse()
, sofern diese verfügbar werden) dafür: nimmt
var strJson = $.parseJSON($("#status").val().replace(";",""));
Warum verwenden Sie 'eval' an erster Stelle? Bleib einfach dabei: 'var strJson = $ (" # status "). Val(). Replace ("; "," ");' –