我得到響應JSON字符串從服務器這樣的:如何JSON字符串轉換用雙引號反斜線Javascript對象
$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
如何角模板頁面使用$scope.text
這樣的:
{{text.response.age}}
這是我的演示Demo
我得到響應JSON字符串從服務器這樣的:如何JSON字符串轉換用雙引號反斜線Javascript對象
$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
如何角模板頁面使用$scope.text
這樣的:
{{text.response.age}}
這是我的演示Demo
$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
這裏的問題是,這不是JSON。
就其本身而言:
{"response":"{\"firstName\":\"John\",\"age\":454 }"}
...是JSON。
但是,一旦將它包裝在JavaScript字符串文字中,\
將用作JavaScript字符串文字的轉義字符,並在它出現在JSON中之前被使用。
當您生成JSON嵌入JS,你需要轉義特殊含義的字符在JS:
$scope.text = '{"response":"{\\"firstName\\":\\"John\\",\\"age\\":454 }\"}';
這也將是一個好主意,重新設計你的數據結構,使您的JSON不首先包含JSON字符串:
$scope.text = '{"response": {"firstName":"John","age":454}}';
謝謝,但如何將其轉換爲JavaScript對象。我添加了一個演示頁面。我該怎麼辦? –
@Ehsan - 您需要修復輸入(使其成爲JSON),如我所描述的,並舉例說明。您可以將JSON.parse應用於它。 – Quentin
我無法更改從服務器獲取的響應 –
閱讀關於'JSON.parse' – Rayon