Am o problema parsarea JSON simplu siruri de caractere. Le-am verificat pe JSONLint și se arată că acestea sunt valide. Dar când am încerca să elimine cu ajutorul fie JSON.analiza
sau jQuery alternativă imi da eroare tokenul o
:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
Notă: am'm codare mea siruri de caractere folosind `json_encode () in PHP.
Datele dvs. este deja un obiect. Nu este nevoie pentru a-l analiza. Javascript interpret are deja analizat-o pentru tine.
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details['ques_title']);
Sursa de eroare, cu toate acestea, este că aveți nevoie pentru a plasa plină JSON string cu ghilimele. Următoarele va rezolva proba:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ='{"ques_id":"15","ques_title":"jlkjlkjlkjljl"}';
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
Ca alți respondenți au menționat, obiectul este deja analizate într-un obiect JS, astfel încât să don't nevoie pentru a-l analiza. Pentru a demonstra cum de a realiza același lucru, fără analiză, puteți face următoarele:
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":"15","ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details.ques_title);
</script>
</body>
</html>
Am avut aceeasi problema cand am prezentat date folosind jQuery AJAX:
$.ajax({
url:...
success:function(data){
//server response's data is JSON
//I use jQuery's parseJSON method
$.parseJSON(data);//it's ERROR
}
});
Dacă răspunsul este JSON, și de a utiliza această metodă, datele pe care le obține este un obiect JavaScript, dar dacă ai folosit tip de date:"text", de date este un șir JSON. Atunci utilizarea
$.parseJSON` este bine.
Am văzut acest simbol neașteptat oeroare din cauza mea (incomplete) cod de a rula anterior (live reload!) și setați special tastat locale de stocare de valoare
[object Object]în loc de
{}`. Nu a fost't până când mi-am schimbat cheile, că lucrurile au inceput sa lucreze cum era de așteptat. Alternativ, aveți posibilitatea să urmați aceste instrucțiuni pentru a șterge setat incorect localStorage valoare](https://stackoverflow.com/a/10710029/687274).