Behzad Azizan
Behzad Azizan

Reputation: 261

Jquery SyntaxError: JSON.parse: bad control character in string literal at line 1 column 61 of the JSON data

I want to decode a json string via jquery in my site, but this error displayed in Firefox console :

enter image description here

I used the following code:

var arrayJSON = $.parseJSON('[{"id":"1","title":"\u067e\u064a\u0634\u06af\u0641\u062a\u0627\u0631"}, {"id":"2","title":"\u0645\u0648\u0636\u0648\u0639\u0627\u062a  \t\t\t\t\t\t\u062f\u0647\u00a0\u06af\u0627\u0646\u0647 \u0645\u0648\u0631\u062f \u0628\u062d\u062b"}, {"id":"3","title":"\u0642\u0631\u0622\u0646  \t\t\t\t\t\t\u0627\u0632 \u0647\u0631\u06af\u0648\u0646\u0647 \u062a\u062d\u0631\u064a\u0641 \u0645\u0646\u0632\u0651\u0647 \u0627\u0633\u062a\u00a0\u00a0\u00a0 "}, {"id":"4","title":"\u062f\u0648  \t\t\t\t\t\t\u0643\u062a\u0627\u0628 \u0627\u0632 \u062f\u0648 \u06af\u0631\u0648\u0647 "}, {"id":"5","title":"\u0628\u0647  \t\t\t\t\t\t\u062e\u0627\u0637\u0631 \u062e\u0635\u0648\u0645\u062a \u0641\u0631\u0642\u0647\u00a0\u0627\u0649 \u062a\u064a\u0634\u0647 \u0628\u0631 \u0631\u064a\u0634\u0647 \u0627\u0633\u0644\u0627\u0645 \u0646\u0632\u0646\u064a\u062f"}, {"id":"6","title":"\u062f\u0644\u0627\u064a\u0644  \t\t\t\t\t\t\u0639\u0642\u0644\u0649 \u0648 \u0646\u0642\u0644\u0649 \u0628\u0631 \u0639\u062f\u0645 \u062a\u062d\u0631\u064a\u0641"}, {"id":"7","title":"\u062a\u0642\u064a\u0651\u0647  \t\t\t\t\t\t\u062f\u0631 \u0643\u062a\u0627\u0628 \u0648 \u0633\u0646\u0651\u062a\u00a0\u00a0\u00a0 "}, {"id":"8","title":"\u0640  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u0686\u064a\u0633\u062a\u061f "}, {"id":"9","title":"\u0640 \u0641\u0631\u0642  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u0628\u0627 \u0646\u0641\u0627\u0642 "}, {"id":"10","title":"\u0640  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u062f\u0631 \u062a\u0631\u0627\u0632\u0648\u0649 \u0639\u0642\u0644 "}, {"id":"11","title":"\u0640  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u062f\u0631 \u0643\u062a\u0627\u0628 \u0627\u0644\u0644\u0647 "}, {"id":"12","title":"\u0640  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u062f\u0631 \u0631\u0648\u0627\u064a\u0627\u062a \u0627\u0633\u0644\u0627\u0645\u0649 "}, {"id":"13","title":"\u0640 \u0622\u064a\u0627  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u0641\u0642\u0637 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u0643\u0641\u0651\u0627\u0631 \u0627\u0633\u062a\u061f "}, {"id":"14","title":"\u0640  \t\t\t\t\t\t\u067e\u0631\u0633\u0634\u00a0\u0647\u0627\u0649 \u0628\u0649 \u062c\u0648\u0627\u0628 "}, {"id":"15","title":"\u0640  \t\t\t\t\t\t\u0635\u062d\u0627\u0628\u0647 \u0643\u064a\u0627\u0646\u0646\u062f\u061f "}, {"id":"16","title":"\u0639\u062f\u0627\u0644\u062a  \t\t\t\t\t\t\u0635\u062d\u0627\u0628\u0647\u00a0\u00a0\u00a0 "}, {"id":"17","title":"\u0640 \u062f\u0648  \t\t\t\t\t\t\u0639\u0642\u064a\u062f\u0647 \u0645\u062a\u0636\u0627\u062f "}, {"id":"18","title":"\u0640  \t\t\t\t\t\t\u062a\u0646\u062f\u0631\u0648\u0627\u0646 \u062a\u0646\u0632\u064a\u0647 "}, {"id":"19","title":"\u0640  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u0645\u062f\u0627\u0631\u0627\u064a\u0649 "}, {"id":"20","title":"\u0640  \t\t\t\t\t\t\u062a\u0642\u064a\u0651\u0647 \u062d\u0631\u0627\u0645 "}]');

Upvotes: 3

Views: 4671

Answers (3)

Ahmed Magdy
Ahmed Magdy

Reputation: 6030

Since it has \t then use eval instead of JSON.parse otherwise you have to remove \t

literal tab character is not allowed inside a JSON string. Reference: https://stackoverflow.com/a/19799355/70439

Upvotes: 0

Michael
Michael

Reputation: 435

if you can, remove all "\t" and it will be fine

Upvotes: 4

Nikhil Batra
Nikhil Batra

Reputation: 3148

Use this json:

var arrayJSON = $.parseJSON('[{"id":"1","title":"\u067e\u064a\u0634\u06af\u0641\u062a\u0627\u0631"}, {"id":"1","title":"\u067e\u064a\u0634\u06af\u0641\u062a\u0627\u0631"}]');

Here you need an array of data, so u need to add [] around your json, else it will throw error at ,.

Upvotes: 0

Related Questions