JSON是一種常用的跨語言數(shù)據(jù)交互格式。在JSON中,中文字符串是按照Unicode編碼存儲的,而不是直接存儲中文字符。因此,如果不使用適當?shù)姆椒ㄗx取JSON中的中文字符串,可能會出現(xiàn)亂碼的情況。
在JavaScript中,可以使用JSON.parse()方法解析JSON字符串為JavaScript對象。默認情況下,JSON.parse()會將Unicode編碼的中文字符轉換為對應的中文字符。下面是一個例子:
var jsonStr = '{"name":"張三","age":20}'; var obj = JSON.parse(jsonStr); console.log(obj.name); //輸出:張三 console.log(obj.age); //輸出:20
但是,在一些特殊情況下,需要手動處理JSON中的中文字符串。比如,在使用jQuery的ajax函數(shù)從服務端獲取JSON數(shù)據(jù)時,需要設置dataType為'json'同時設置contentType為'application/json;charset=UTF-8',才能正確讀取含有中文的JSON字符串。下面是一個例子:
$.ajax({ url: 'example.com/getdata', dataType: 'json', contentType: 'application/json;charset=UTF-8', success: function(data) { console.log(data.name); //輸出:張三 console.log(data.age); //輸出:20 } });
在Python中,可以使用json庫解析JSON字符串為Python對象。默認情況下,json.loads()會將Unicode編碼的中文字符轉換為對應的中文字符。下面是一個例子:
import json jsonStr = '{"name":"張三","age":20}' obj = json.loads(jsonStr) print(obj['name']) #輸出:張三 print(obj['age']) #輸出:20
如果希望在Python中正確讀取含有中文的JSON字符串,可以使用codecs庫的open函數(shù)打開JSON文件,并設置encoding為'utf-8',以便正確讀取中文字符。下面是一個例子:
import json import codecs with codecs.open('example.json', 'r', 'utf-8') as f: jsonStr = f.read() obj = json.loads(jsonStr) print(obj['name']) #輸出:張三 print(obj['age']) #輸出:20