js接收json数据中文乱码问题

JavaScript063

js接收json数据中文乱码问题,第1张

楼主,既然你返回的是json数据,那么你就应该设置ContentType类型为application/json

即:resp.setContentType("application/json")

对应的中文文本的类型这样设置res.setCharacterEncoding("ISO-8859-1")后边的"iso"变为"ISO",希望对你有所帮助!

还是有问题的话,还望继续回复!

var json = { contry:{ area:{ man:"12万", women:"10万" } } }

//方式一:使用eval解析

var obj = eval(json)

alert(obj.constructor)

alert(obj.contry.area.women)

//方式二:使用Funtion函数

var strJSON = "{name:'json name'}"//得到的JSON

var obj = new Function("return" + strJSON)()//转换后的JSON对象

alert(obj.name)//json name

alert(obj.constructor)

//复杂一点的json数组数据的解析

var value1 = [{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"}, {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"}, {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}] var obj1 = eval(value1)

alert(obj1[0].c01)

//复杂一点的json的另一种形式

var value2 = {"list":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"}], "array":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]}

var obj2 = eval(value2)

alert(obj2.list[0].password)

一、使用js获取接口数据的方法①$get(url,[data],[callback])url:请求的地址data:请求数据的列表callback:请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个为服务器的状态,是可选参数。其中服务器返回数据的格式其实是字符串形式,并不是我们想要的JSON数据格式。上例子:var url3 = 'http://mshop.gemstc.com/ApiService/msgget.php'$.get(url3,function(data){alert(data) })此时如果对data采用json解析数据,得到的值为undefined。所以我们使用这种get方法获取到的值要是JSON格式,需要定义获取的数据类型为json格式,上例子:var url3 = 'http://mshop.gemstc.com/ApiService/msgget.php'$.get(url3,function(data){ $('#result').append('interval:'+data.name+'')//此时返回的是JSON格式的内容,例:我们可以使用data.name获取到name字段的值并输出。 }, 'json')②$post(url,[data],[callback],[type])post方法中多了一个type:获取数据的类型格式,post其实和get是一样的用法,type不定义,返回的是字符串类型的,定义为json格式,返回的就是json格式的数据,此处可以仿照上面的get方法,把get改成post就搞定了,就不多说了。