为什么我的米粉卡套餐内专享免费流量3元的没有流量套餐

JSON字符串和对象相互转换 - 黄彪学习笔记 - ITeye技术网站
博客分类:
同事问了我一个问题——server端返回了一个json结构的字符串,怎么样去访问json对象里面的值?jquery有没有对返回的JSON数据进行解析?
我自己写了一个小的demo,还有从网上查了一些资料,在这里跟大家分享一下
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns="http://www.w3.org/1999/xhtml"&
&meta http-equiv="Content-Type" content="text/ charset=gb2312" /&
&script src="lib/jquery-1.6.4.min.js" type="text/javascript"&&/script&
&script type="text/javascript"&
$(document).ready(
function(){
var json = {"name":"Mike","sex":"女","age":29};
alert(typeof json);
var temp = obj2str(json);
alert(temp);
alert(typeof temp);
//下面这个方法是将json对象转换为字符串
function obj2str(o){
var r = [];
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o =="undefined") return "undefined";
if(typeof o == "object"){
if(o===null) return "null";
else if(!o.sort){
for(var i in o)
r.push(i+":"+obj2str(o[i]))
r="{"+r.join()+"}"
for(var i =0;i&o.i++)
r.push(obj2str(o[i]))
r="["+r.join()+"]"
return o.toString();
/*使用jquery插件,需要注意的是json的key-value必须都为字符串,即都需要使用双引号包起来,
不能使用单引号,如果value是数字就不需要用双引号包起来*/
function jquery_string_to_json(){
var jsonString = '{"name":"huangbiao","sex":"boy","age":16}';
//var jsonString = "{'name':'huangbiao','sex':'boy','age':16}";//错误的声明
alert(typeof jsonString);
var obj = jQuery.parseJSON(jsonString);
alert(typeof obj);
/*使用eval方法对于字符串里面的key-value都必须使用双引号括起来,不能使用单引号,否则不
能够正常解析*/
function String_to_JSON(){
var json = '{"name":"huangbiao","sex":"boy","age":16}';
var temp = eval('('+json+')');//eval方法里面的括号是不能够少的,否则报脚本错误
alert(typeof temp);
alert(temp.name);
//使用JSON对象只能在IE8以上的版本支持,因此不建议使用这种方式转换
//var json = '{"name":"Mike","sex":"女","age":"29"}';
//var temp = JSON.parse(json);
//alert(temp.name);
&title&无标题文档&/title&
在工作中发现server端传给前端JSON格式的字符串,使用eval("("+json+")");没有办法将得到的字符串转换为JSON对象,解决办法如下:
function obj2str(o){
var r = [];
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o =="undefined") return "undefined";
if(typeof o == "object"){
if(o===null) return "null";
else if(!o.sort){
for(var i in o)
r.push(i+":"+obj2str(o[i]))
r="{"+r.join()+"}"
for(var i =0;i&o.i++)
r.push(obj2str(o[i]))
r="["+r.join()+"]"
return o.toString();
function json2obj(o){
var result = obj2str(o);
return eval("(" + result + ")");
调用json2obj(o)这个方法即可。
下载次数: 22
浏览: 2004504 次
来自: 长沙
debug版本的apk没有问题,签名以后的apk 就不跳转链接 ...
直接用缓存啊 干嘛用map
不错。不知道你知不知道,缓存写磁盘,再恢复的问题
下载439次,就没一个说谢谢。ps:谢谢博主的分享。字符串转换成json数据再转换成字典(字符串相关操作和json解析) - 简书
字符串转换成json数据再转换成字典(字符串相关操作和json解析)
1.数据格式(字符串)ExtraData={"type":"1","id":"","title":"我是广告", "oglink":"http%3A%2F%2Fwww.", "link":"", "pic":"", "logo":"1", "istrack":"1"};ExtraData={"type":"1","id":"","title":"我是广告", "oglink":"http%3A%2F%2Fwww.", "link":"", "pic":"", "logo":"1", "istrack":"1"};2.分析数据数据类似json数据但是其实不是。我们发现数据还是相对标准。(1)我们可以先把字符串中的"ExtraData="代替为空字符串"":theString等于上面的一整串字符串。NSString*strResult= [theStringstringByReplacingOccurrencesOfString:@"ExtraData="withString:@""];NSLog(@"strResult....%@",strResult);strResult输出结果为:{"type":"1","id":"","title":"我是广告", "oglink":"http%3A%2F%2Fwww.", "link":"", "pic":"", "logo":"1", "istrack":"1"};{"type":"1","id":"","title":"我是广告", "oglink":"http%3A%2F%2Fwww.", "link":"", "pic":"", "logo":"1", "istrack":"1"};(2)输出结果类似于两个字典,我们只要用字符串的提取方法把字符串从”;”分割出来组成一个数组:(注意:这里组成的数组的元素并不是字典,只是字符串,而且最后一个”;”后边也有一个空的字符串“”,不能忽略)NSArray*array = [strResultcomponentsSeparatedByString:@";"];array的结果如下:("{"type":"1","id":"","title":"我是广告", "oglink":"http%3A%2F%2Fwww.", "link":"", "pic":"", "logo":"1", "istrack":"1”}","{"type":"1","id":"","title":"我是广告", "oglink":"http%3A%2F%2Fwww.", "link":"", "pic":"", "logo":"1", "istrack":"1”}","")(3)数组的部分数据(除了最后一个)是json数据,就可以用json数据解析NSString*jsonString = array[0];NSData*jsonData = [jsonStringdataUsingEncoding:NSUTF8StringEncoding];NSError*NSDictionary*dic = [NSJSONSerializationJSONObjectWithData:jsonDataoptions:NSJSONReadingMutableContainerserror:&err];输出经过json解析的字典dic:{id = ;istrack = 1;link = "";logo = 1;oglink = "http%3A%2F%2Fwww.";pic = "";title = "\Uf\U5e7f\U544a";type = 1;}192752人阅读
一.下载json 具体到上找java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了
二.具体转化过程
//JSONObject
&String jsonMessage = &{\&语文\&:\&88\&,\&数学\&:\&78\&,\&计算机\&:\&99\&}&;
&&String value1 =
&&&//将字符串转换成jsonObject对象
&&&JSONObject myJsonObject = new JSONObject(jsonMessage);
&&&//获取对应的值
&&&value1 = myJsonObject.getString(&数学&);
&&catch (JSONException e)
&&System.out.println(&value1=&+value1);
//JSONArray
jsonMessage = &[{'num':'成绩', '外语':88, '历史':65, '地理':99, 'object':{'aaa':'1111','bbb':'2222','cccc':'3333'}},& +
&&&&&&&&&& &{'num':'兴趣', '外语':28, '历史':45, '地理':19, 'object':{'aaa':'11a11','bbb':'2222','cccc':'3333'}},& +
&&&&&&&&&& &{'num':'爱好', '外语':48, '历史':62, '地理':39, 'object':{'aaa':'11c11','bbb':'2222','cccc':'3333'}}]&;
&&JSONArray myJsonA
&&&myJsonArray = new JSONArray(jsonMessage);
&&&for(int i=0 ; i & myJsonArray.length() ;i++)
&&&&//获取每一个JsonObject对象
&&&&JSONObject myjObject = myJsonArray.getJSONObject(i);
&&&&//获取每一个对象中的值
&&&&String numString = myjObject.getString(&num&);
&&&&int englishScore = myjObject.getInt(&外语&);
&&&&int historyScore = myjObject.getInt(&历史&);
&&&&int geographyScore = myjObject.getInt(&地理&);
&&&&//获取数组中对象的对象
&&&&JSONObject myjObject2 = myjObject.getJSONObject(&object&);
&&&&String aaaString = myjObject2.getString(&aaa&);
&&&&System.out.println(&aaaString=&+aaaString);
&&&&System.out.println(&numString=&+numString);
&&&&System.out.println(&englishScore=&+englishScore);
&&&&System.out.println(&historyScore=&+historyScore);
&&&&System.out.println(&geographyScore=&+geographyScore);
&&catch (JSONException e)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:254171次
积分:1050
积分:1050
排名:千里之外
原创:23篇
(1)(1)(1)(1)(2)(4)(2)(1)(1)(1)(1)(2)(14)}

我要回帖

更多关于 米粉卡套餐内专享免费流量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信