1

I read the content of a <script> - area a a STRING.

$('script').each(function() {
        if (this.innerHTML.indexOf("AF_initDataCallback({key: '12'")>-1) {
            var complete=this.innerHTML;
            var startJSON=complete.indexOf('[');
            var endJSON=complete.lastIndexOf(']');
        //    var ar=eval(complete.substring(startJSON,endJSON));
            var ar2=$.parseJSON(complete.substring(startJSON,endJSON));

        }
    });

Through manipulations I receive the following content I want to conver to a "real" JSON

"[[[["23e29db10f09d296"]
,["Friends",,"Your real friends, the ones you feel comfortable sharing private details with.",,,,,,,2,2,,"00000000",1,1,1]
]
,[["3d5354de09baf36e"]
,["Family",,"Your close and extended family, with as many or as few in-laws as you want.",,,,,,,2,2,,"00000001",2,1,1]
]
,[["21f948f108db184f"]
,["Techie",,"",,,,,,,2,2,,"00000002",0,1,1]
]
,[["7373617e08bbeac4"]
,["funny",,,,,,,,,2,2,,"00000003",0,1,1]
]
,[["4ace516d8d62f107"]
,["Job",,,,,,,,,2,2,,"00000004",0,1,1]
]
,[["5594b1f8d1f1e37"]
,["Followers",,,,,,,,,2,2,,"00000005",0,1,1]
]
,[["2bc5e6a50e948a73"]
,["Job: Nice",,"",,,,,,,2,2,,"00000006",0,1,1]
]
,[["397a6a970cade6e8"]
,["rx8",,,,,,,,,2,2,,"00000007",0,1,1]
]
,[["13ea3c80821ad9c"]
,["promi",,,,,,,,,2,2,,"00000008",0,1,1]
]
,[["588da2260e942271"]
,["Firmen",,,,,,,,,2,2,,"00000009",0,1,1]
]
,[["337bb5990e4870e5"]
,["News",,,,,,,,,2,2,,"0000000a",0,1,1]
]
,[["4856572c0e1de220"]
,["Gaming",,,,,,,,,2,2,,"0000000b",0,1,1]
]
,[["3555f8f8bc5726f"]
,["mine",,,,,,,,,2,2,,"0000000c",0,1,1]
]
,[["6a01451c89ca64ae"]
,["Nette Leute",,"",,,,,,,2,2,,"0000000d",0,1,1]
]
,[["90ed4e98f5820f7"]
,["Hamburg",,"",,,,,,,2,2,,"0000000e",0,1,1]
]
,[["56bac85c894170b8"]
,["Job-Contacts",,"",,,,,,,2,2,,"0000000f",0,1,1]
]
,[["485ab93e8e81d66d"]
,["Fussball",,"",,,,,,,2,2,,"00000010",0,1,1]
]
,[["5ec1bb9409bad931"]
,["Journaille",,"",,,,,,,2,2,,"00000011",0,1,1]
]
,[["135ce0d189b1e545"]
,["mal schauen",,,,,,,,,2,2,,"00000012",,1,1]
]
,[["1ecbecf28ec85202"]
,["Lonely Circle",,"",,,,,,,2,2,,"00000013",0,1,1]
]
,[["38a246348c513a39"]
,["ignore",,,,,,,,,2,2,,"00000014",0,1,1]
]
,[["2f9c4a3c0e1f43b9"]
,["Vielschreiber",,"",,,,,,,2,2,,"00000015",0,1,1]
]
,[["7fd0532089537115"]
,["Bombenbauer",,"",,,,,,,2,2,,"00000016",0,1,1]
]
,[["765e2a78e64b1a6"]
,["Techsites",,"",,,,,,,2,2,,"00000017",0,1,1]
]
,[["598e823988cf077e"]
,["OK",,"",,,,,,,2,2,,"00000018",0,1,1]
]
,[["3edae58f895c3933"]
,["Star Trek",,,,,,,,,2,2,,"00000019",0,1,1]
]
,[["22ad725f89342264"]
,["Deppen",,,,,,,,,2,2,,"0000001a",0,1,1]
]
,[["254c1dec0d1bf02a"]
,["science",,,,,,,,,2,2,,"0000001b",0,1,1]
]
,[["2b4588aa898848a4"]
,["Undeutsch",,,,,,,,,2,2,,"0000001c",0,1,1]
]
,[["300a8672084d875b"]
,["eurpeans",,,,,,,,,2,2,,"0000001d",0,1,1]
]
,[["7de54f780f74eb6d"]
,["Autoren",,,,,,,,,2,2,,"0000001e",0,1,1]
]
,[["152f86d208909412"]
,["Unterhaltung",,,,,,,,,2,2,,"0000001f",0,0,1]
]
,[["6d96794b0f6ac25e"]
,["Bookmarks",,"",,,,,,,2,2,,"00000020",0,1,1]
]
,[["76c46c5489053a6b"]
,["Usertreffen",,,,,,,,,2,2,,"00000021",0,1,1]
]
,[["80d2af10e3778b1"]
,["g+j",,,,,,,,,2,2,,"00000022",0,1,1]
]
,[["e2e37408d864f3f"]
,["Ouya Follower",,,,,,,,,2,2,,"00000023",0,1,1]
]
,[["2916afdf8cbcf8e0"]
,["Ingress DE",,"",,,,,,,2,2,,"00000024",0,1,1]
]
,[["74bca48bb5e9bf"]
,["Ouya",,,,,,,,,2,2,,"00000025",0,1,1]
]
,[["63d74040084991b1"]
,["Spam",,,,,,,,,2,2,,"00000026",0,1,1]
]
,[["6d0e7cf08bee08d8"]
,["Geeks",,,,,,,,,2,2,,"00000027",0,1,1]
]
,[["1deb550f8d794be4"]
,["janzneu",,,,,,,,,2,2,,"00000028",0,0,1]
]
,[["6c02104c094dd570"]
,["urlaub",,,,,,,,,2,2,,"00000029",0,0,1]
]
,[["267736b60f3a46e7"]
,["Heimat",,,,,,,,,2,2,,"0000002a",0,1,1]
]
,[["7a7fd8738eedd564"]
,["Google",,,,,,,,,2,2,,"0000002b",0,0,1]
]
,[["3e6492e98907eda2"]
,["Politik",,,,,,,,,2,2,,"0000002c",0,0,1]
]
,[["42f28c228ae071ac"]
,["prio",,,,,,,,,2,2,,"0000002d",0,0,1]
]
,[["2c2fbd540de7df0f"]
,["Optimizer",,,,,,,,,2,2,,"0000002e",0,1,1]
]
]
"

So I receive a STRING that already "looks" like JSON and "was" a real JSON before.

But when I try to convert this to a real object using $.parseJSON I get the error

Uncaught SyntaxError: Unexpected token ,

Do I have to do some conversions before or wrap something around it?

(Update) The FULL script-area I want to grab:

<script>AF_initDataCallback({key: '12', isError:  false , data:[[[["23e29db10f09d296"]
,["Friends",,"Your real friends, the ones you feel comfortable sharing private details with.",,,,,,,2,2,,"00000000",1,1,1]
]
,[["3d5354de09baf36e"]
,["Family",,"Your close and extended family, with as many or as few in-laws as you want.",,,,,,,2,2,,"00000001",2,1,1]
]
,[["21f948f108db184f"]
,["Techie",,"",,,,,,,2,2,,"00000002",0,1,1]
]
,[["7373617e08bbeac4"]
,["funny",,,,,,,,,2,2,,"00000003",0,1,1]
]
,[["4ace516d8d62f107"]
,["Job",,,,,,,,,2,2,,"00000004",0,1,1]
]
,[["5594b1f8d1f1e37"]
,["Followers",,,,,,,,,2,2,,"00000005",0,1,1]
]
,[["2bc5e6a50e948a73"]
,["Job: Nice",,"",,,,,,,2,2,,"00000006",0,1,1]
]
,[["397a6a970cade6e8"]
,["rx8",,,,,,,,,2,2,,"00000007",0,1,1]
]
,[["13ea3c80821ad9c"]
,["promi",,,,,,,,,2,2,,"00000008",0,1,1]
]
,[["588da2260e942271"]
,["Firmen",,,,,,,,,2,2,,"00000009",0,1,1]
]
,[["337bb5990e4870e5"]
,["News",,,,,,,,,2,2,,"0000000a",0,1,1]
]
,[["4856572c0e1de220"]
,["Gaming",,,,,,,,,2,2,,"0000000b",0,1,1]
]
,[["3555f8f8bc5726f"]
,["mine",,,,,,,,,2,2,,"0000000c",0,1,1]
]
,[["6a01451c89ca64ae"]
,["Nette Leute",,"",,,,,,,2,2,,"0000000d",0,1,1]
]
,[["90ed4e98f5820f7"]
,["Hamburg",,"",,,,,,,2,2,,"0000000e",0,1,1]
]
,[["56bac85c894170b8"]
,["Job-Contacts",,"",,,,,,,2,2,,"0000000f",0,1,1]
]
,[["485ab93e8e81d66d"]
,["Fussball",,"",,,,,,,2,2,,"00000010",0,1,1]
]
,[["5ec1bb9409bad931"]
,["Journaille",,"",,,,,,,2,2,,"00000011",0,1,1]
]
,[["135ce0d189b1e545"]
,["mal schauen",,,,,,,,,2,2,,"00000012",,1,1]
]
,[["1ecbecf28ec85202"]
,["Lonely Circle",,"",,,,,,,2,2,,"00000013",0,1,1]
]
,[["38a246348c513a39"]
,["ignore",,,,,,,,,2,2,,"00000014",0,1,1]
]
,[["2f9c4a3c0e1f43b9"]
,["Vielschreiber",,"",,,,,,,2,2,,"00000015",0,1,1]
]
,[["7fd0532089537115"]
,["Bombenbauer",,"",,,,,,,2,2,,"00000016",0,1,1]
]
,[["765e2a78e64b1a6"]
,["Techsites",,"",,,,,,,2,2,,"00000017",0,1,1]
]
,[["598e823988cf077e"]
,["OK",,"",,,,,,,2,2,,"00000018",0,1,1]
]
,[["3edae58f895c3933"]
,["Star Trek",,,,,,,,,2,2,,"00000019",0,1,1]
]
,[["22ad725f89342264"]
,["Deppen",,,,,,,,,2,2,,"0000001a",0,1,1]
]
,[["254c1dec0d1bf02a"]
,["science",,,,,,,,,2,2,,"0000001b",0,1,1]
]
,[["2b4588aa898848a4"]
,["Undeutsch",,,,,,,,,2,2,,"0000001c",0,1,1]
]
,[["300a8672084d875b"]
,["eurpeans",,,,,,,,,2,2,,"0000001d",0,1,1]
]
,[["7de54f780f74eb6d"]
,["Autoren",,,,,,,,,2,2,,"0000001e",0,1,1]
]
,[["152f86d208909412"]
,["Unterhaltung",,,,,,,,,2,2,,"0000001f",0,0,1]
]
,[["6d96794b0f6ac25e"]
,["Bookmarks",,"",,,,,,,2,2,,"00000020",0,1,1]
]
,[["76c46c5489053a6b"]
,["Usertreffen",,,,,,,,,2,2,,"00000021",0,1,1]
]
,[["80d2af10e3778b1"]
,["g+j",,,,,,,,,2,2,,"00000022",0,1,1]
]
,[["e2e37408d864f3f"]
,["Ouya Follower",,,,,,,,,2,2,,"00000023",0,1,1]
]
,[["2916afdf8cbcf8e0"]
,["Ingress DE",,"",,,,,,,2,2,,"00000024",0,1,1]
]
,[["74bca48bb5e9bf"]
,["Ouya",,,,,,,,,2,2,,"00000025",0,1,1]
]
,[["63d74040084991b1"]
,["Spam",,,,,,,,,2,2,,"00000026",0,1,1]
]
,[["6d0e7cf08bee08d8"]
,["Geeks",,,,,,,,,2,2,,"00000027",0,1,1]
]
,[["1deb550f8d794be4"]
,["janzneu",,,,,,,,,2,2,,"00000028",0,0,1]
]
,[["6c02104c094dd570"]
,["urlaub",,,,,,,,,2,2,,"00000029",0,0,1]
]
,[["267736b60f3a46e7"]
,["Heimat",,,,,,,,,2,2,,"0000002a",0,1,1]
]
,[["7a7fd8738eedd564"]
,["Google",,,,,,,,,2,2,,"0000002b",0,0,1]
]
,[["3e6492e98907eda2"]
,["Politik",,,,,,,,,2,2,,"0000002c",0,0,1]
]
,[["42f28c228ae071ac"]
,["prio",,,,,,,,,2,2,,"0000002d",0,0,1]
]
,[["2c2fbd540de7df0f"]
,["Optimizer",,,,,,,,,2,2,,"0000002e",0,1,1]
]
]
]
});</script>
2
  • given example isn't valid json. Please copy full string text Commented Mar 29, 2014 at 13:14
  • @VasilVanchuk I posted the full string text. As you can see it looks just like my posted part before Commented Mar 29, 2014 at 13:28

3 Answers 3

2

Every index in an array must have a value. You can't have [ something, , something ]

You probably want a null between each pair of adjacent commas.

Sign up to request clarification or add additional context in comments.

Comments

1

In JSON, empty array members are not valid, for example:

["News",,,,,,,,,2,2,,"0000000a",0,1,1]

If you get rid of these, it could be valid JSON:

["News",2,2,"0000000a",0,1,1]

Actually, this is what the error message tells you :). You should read the JSON spec, it is really short. Could also run a validator.

Comments

0

Following the answers from @Quentin and @kapa I came to the following solution:

var cstr=complete.substring(startJSON,endJSON+1);
while (cstr.indexOf(",,")>0) {
   cstr=cstr.replace(",,",",null,")                
};
var ar2=$.parseJSON(cstr);

To be honest I don't like it. It looks to dirty to me.

1 Comment

The clean way would be to fix the original JSON to be, well, JSON. But I understand you might not have access to that. So all you can do is hacks like this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.