Sujith
Sujith

Reputation: 17

Uncaught SyntaxError: Unexpected token in JSON at position 0

Showing:

Uncaught SyntaxError: Unexpected token u in JSON at position 0

Same code works fine on localhost.

Array just before parsing:

[{"id":"15","label":"Andhra Pradesh","parent_id":"14","super_parents":"*0*13*14*"},{"id":"13","label":"World","parent_id":"0","super_parents":"*0*"},{"id":"14","label":"India","parent_id":"13","super_parents":"*0*13*"},{"id":"50","label":"Alappuzha","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"64","label":"Chenganoor","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"71","label":"Puthanangadi ","parent_id":"70","super_parents":"*0*13*14*27*50*70*"},{"id":"16","label":"Arunachal Pradesh ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"51","label":"Ernakulam","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"65","label":"Mavelikkara","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"17","label":"Assam","parent_id":"14","super_parents":"*0*13*14*"},{"id":"52","label":"\tIdukki","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"66","label":"Karthikappally","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"18","label":"Bihar","parent_id":"14","super_parents":"*0*13*14*"},{"id":"53","label":"Kannur","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"67","label":"Kuttanad","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"19","label":"Chhattisgarh","parent_id":"14","super_parents":"*0*13*14*"},{"id":"54","label":"Kasaragod","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"68","label":"Ambalappuzha","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"20","label":"Goa","parent_id":"14","super_parents":"*0*13*14*"},{"id":"55","label":"Kollam","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"69","label":"Cherthala","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"21","label":"Gujarat ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"56","label":"Kottayam","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"70","label":"varanam","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"22","label":"Haryana","parent_id":"14","super_parents":"*0*13*14*"},{"id":"57","label":"Kozhikode","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"72","label":"Punnapra","parent_id":"50","super_parents":"*0*13*14*27*50*"},{"id":"23","label":"Himachal Pradesh ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"58","label":"Malappuram","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"24","label":"Jammu & Kashmir","parent_id":"14","super_parents":"*0*13*14*"},{"id":"59","label":"Palakkad","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"25","label":"Jharkhand","parent_id":"14","super_parents":"*0*13*14*"},{"id":"60","label":"Pathanamthitta","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"26","label":"Karnataka","parent_id":"14","super_parents":"*0*13*14*"},{"id":"61","label":"Thiruvananthapuram","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"27","label":"Kerala","parent_id":"14","super_parents":"*0*13*14*"},{"id":"62","label":"Thrissur","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"28","label":"Madhya Pradesh","parent_id":"14","super_parents":"*0*13*14*"},{"id":"63","label":"Wayanad","parent_id":"27","super_parents":"*0*13*14*27*"},{"id":"29","label":"Maharashtra","parent_id":"14","super_parents":"*0*13*14*"},{"id":"30","label":"Manipur","parent_id":"14","super_parents":"*0*13*14*"},{"id":"31","label":"Meghalaya","parent_id":"14","super_parents":"*0*13*14*"},{"id":"32","label":"Mizoram","parent_id":"14","super_parents":"*0*13*14*"},{"id":"33","label":"Nagaland","parent_id":"14","super_parents":"*0*13*14*"},{"id":"34","label":"Odisha","parent_id":"14","super_parents":"*0*13*14*"},{"id":"35","label":"Punjab","parent_id":"14","super_parents":"*0*13*14*"},{"id":"36","label":"Rajasthan ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"37","label":"Sikkim","parent_id":"14","super_parents":"*0*13*14*"},{"id":"38","label":"Tamil Nadu","parent_id":"14","super_parents":"*0*13*14*"},{"id":"39","label":"Telangana ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"40","label":"Uttarakhand ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"41","label":"Uttar Pradesh ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"42","label":"West Bengal ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"43","label":"Andaman and Nicobar Islands ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"44","label":"Chandigarh ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"45","label":"Delhi","parent_id":"14","super_parents":"*0*13*14*"},{"id":"46","label":"Dadra and Nagar Haveli","parent_id":"14","super_parents":"*0*13*14*"},{"id":"47","label":"Daman and Diu ","parent_id":"14","super_parents":"*0*13*14*"},{"id":"48","label":"Lakshadweep","parent_id":"14","super_parents":"*0*13*14*"},{"id":"49","label":"Puducherry","parent_id":"14","super_parents":"*0*13*14*"}]  

Java Script code:

var arr = $(".Location_details").val();
arr = arr.replace(/\\n/g, "\\n")  
  .replace(/\\'/g, "\\'")
  .replace(/\\"/g, '\\"')
  .replace(/\\&/g, "\\&")
  .replace(/\\r/g, "\\r")
  .replace(/\\t/g, "\\t")
  .replace(/\\b/g, "\\b")
  .replace(/\\f/g, "\\f");

// remove non-printable and other non-valid JSON chars
arr = arr.replace(/[\u0000-\u001F]+/g, "");

console.log(arr);

var data = $.parseJSON(arr);

Upvotes: 0

Views: 1888

Answers (1)

Sujith
Sujith

Reputation: 17

Extra space and new lines where the problem
When I place the encode JSON data on the hidden value there is some extra space and new line is mistakenly added with that data. but unfortunately when I use console.log(arr); to print the data that extra space is not noticed.

>  <input type="hidden" value='<?php include_once("PhpClass/sql.php");
> $s = new sql(); $result = $s->select_all_sub_places(); $i = 1; while
> ($row = mysqli_fetch_array($result)) { $json[] = array( 'id' =>
> $row['place_id'], 'label' => $row['place_name'], 'parent_id' =>
> $row['parent_id'], 'super_parents' => $row['super_parents']); }echo
> json_encode($json); ?> ' class="Location_details">

so I replace that code to

<?php
include_once("PhpClass/sql.php");

                                        $s = new sql();
                                        $result = $s->select_all_sub_places();
                                        $i = 1;
                                        while ($row = mysqli_fetch_array($result)) {

                                            $json[] =array('id' => $row['place_id'], 'label' => $row['place_name'], 'parent_id' => $row['parent_id'], 'super_parents' => $row['super_parents']);
                                        }?>

                <input type="hidden" value='<?php echo(json_encode($json));?>' class="Location_details">    

A small request to the experts of stack overflow, before degrading a question, please make it sure that person is asking a valid question or not.

Upvotes: 1

Related Questions