我有以下的JSON的ActionScript:什麼似乎有效
{
"extras": {
"google.sent_time": 1502027522898,
"custom": "{\"a\":{\"message_data\":\"\",\"message_id\":\"749\",\"message_command\":\"MESSAGE\"},\"i\":\"899ec3dd\"}",
"from": "62572096498",
"alert": "Read More...",
"title": "New message",
"google.message_id": "0:2905559%2ecccafd7ecd"
}
}
使用
var jsonObj:Object = JSON.parse(str);
無效的JSON解析輸入給出了錯誤:
SyntaxError: Error #1132: Invalid JSON parse input.
at JSON$/parseCore()
at JSON$/parse()
我不明白爲什麼這個是,JSON是有效的。
更多信息,
我曾嘗試和作品的解決方案如下,儘管之前和之後一直有效。
var clean:String = str.split("\\").join('');
clean = clean.replace('"custom":"{"a"', '"custom":{"a"');
clean = clean.replace('"}","from"', '"},"from"');
基本上你在做什麼是unconvert在'的extras.custom'部分的字符串將JSON轉換爲JSON子對象。這意味着JSON解析器無法識別轉義字符串。您是否使用skyboy的JSON解析器?也許你應該在AS3中嘗試一個不同的JSON解析器。 – Vesper
@Vesper,是的,我認爲解析器試圖解析字符串自定義。我使用解析器到Air 26.所以我想問題是爲什麼Adobe解析器不能將內部對象識別爲字符串。 – Mar
我想嘗試一個替代解析器,說這一個https://github.com/blooddy/blooddy_crypto並檢查它是否會工作。如果是的話,發送一個錯誤報告給Adobe,如果沒有,真正審查收到的數據的內部。也許裏面有一些報價不平衡。 – Vesper