在JS中,一般是使用eval()函数将JSON的字符串解析成JSON数据格式。
测试代码如下:
var obj = eval("("+data+")”);//转为json对象alert("return_code:"+obj["return_code"]);//d出json对象return_code属性
这边需要注意的是,eval("("+data+")”)要这么写,里面还带了一对括号。原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
{'innerId':innerid}:是一个对象,在此段代码就是向后台传递一个参数,后台根据这个innerid删除对应的数据;
function (data, textStatus),是Post请求的回调,就是在后台请求完成后,会调用这个函数,并传递data,和textStatus这两个参数,从字面意思来看,data根据业务处理的数据有关,textStatus应该跟>
使用原生的解析:
String json = "";
//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:
for (int j = 0; j < arraylength(); j++) {
obj = arraygetJSONObject(j);
Data data = new Data();
mDataListadd(data);
}
数组声明
在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。
数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。
百度百科-数组
通常是直接"反序列化"出自定义对象比如MySystem system使用。
如果不能直接使用,首先设计好java中"便于使用bytes的"自定义结构比如Map<String, Long> mySizes,然后以JSONObject jo=JSONparseObject(text);取出jo后,再深入遍历把数据放到mySizes中供下一步使用
/简单的回了复杂的也就会了/
/其实,json实际上是用来统一数据格式,所以,在使用它时,肯定要设计一下格式,
当然,所谓的复杂,只是嵌套的层次深了。。。解析方式并没有变。。个人理解,如果觉得有价值就看,没价值,就当没看见吧。。
呵呵。。
/
import javautilArrayList;
import javautilHashMap;
import javautilIterator;
import javautilMap;
import netsfezmorphbeanMorphDynaBean;
import netsfjsonJSONArray;
import netsfjsonJSONSerializer;
/
@author John
/
public class JSONDemo {
public static final String PREFIX = "index_";
/
@param args
/
public static void main(String[] args) {
Map map = new HashMap();
String str ="[{'status': 5,'remarks': '\\xe6\\xa3\\x80\\xe6\\xb5\\x8b\\xe5\\xb7\\xb2\\xe7\\xbb\\x8f\\xe5\\xae\\x8c\\xe6\\x88\\x90','session': \"(1, '92010', '192168177115', 1521L, 'ora9', 1, '')\",'vuls': [\"('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': \'['%E7%89%88%E6%9C%AC%E5%8F%B7']\', 'type': 1}])\",\"('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])\"], 'endTime':123}, 1L, '\\xe6\\xb5\\x8b\\xe8\\xaf\\x95\\xe6\\x89\\xab\\xe6\\x8f\\x8f\\xe4\\xbb\\xbb\\xe5\\x8a\\xa1']";
Systemoutprintln("json格式字符串-->"+str);
JSONArray array = JSONArrayfromObject(str);
Systemoutprintln("json格式字符串构造json数组元素的个数-->"+arraysize());
ArrayList list = (ArrayList) JSONSerializertoJava(array);
int i = 0;
for (Object obj : list) {
mapput(PREFIX+(i++), obj);
Systemoutprintln("第"+i+"对象-->"+obj);
}
//解析第0个位置
Map bd = new HashMap();
MorphDynaBean bean = (MorphDynaBean) mapget(PREFIX+0);
bdput("session", beanget("session"));
bdput("status", beanget("status"));
bdput("remarks", beanget("remarks"));
bdput("vuls", beanget("vuls"));
bdput("endTime", beanget("endTime"));
Iterator iter = bdkeySet()iterator();
while (iterhasNext()){
Object key = iternext();
Object value = bdget(key);
Systemoutprintln("MorphDynaBean对象-->key="+key+",value="+value);
}
//解析vuls
ArrayList vuls = (ArrayList) bdget("vuls");
Map vl = new HashMap();
int j = 0;
for (Object obj : vuls) {
vlput(PREFIX+(j++), obj);
Systemoutprintln("解析vuls的第"+i+"对象-->"+obj);
}
}
}
/
json格式字符串-->[{'status': 5,'remarks': '\xe6\xa3\x80\xe6\xb5\x8b\xe5\xb7\xb2\xe7\xbb\x8f\xe5\xae\x8c\xe6\x88\x90','session': "(1, '92010', '192168177115', 1521L, 'ora9', 1, '')",'vuls': ["('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}])","('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])"], 'endTime':123}, 1L, '\xe6\xb5\x8b\xe8\xaf\x95\xe6\x89\xab\xe6\x8f\x8f\xe4\xbb\xbb\xe5\x8a\xa1']
json格式字符串构造json数组元素的个数-->3
第1对象-->netsfezmorphbeanMorphDynaBean@94948a[
{session=(1, '92010', '192168177115', 1521L, 'ora9', 1, ''), status=5, remarks=·, vuls=[('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}]), ('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])], endTime=123}
]
第2对象-->1L
第3对象-->è
MorphDynaBean对象-->key=status,value=5
MorphDynaBean对象-->key=session,value=(1, '92010', '192168177115', 1521L, 'ora9', 1, '')
MorphDynaBean对象-->key=remarks,value=·
MorphDynaBean对象-->key=vuls,value=[('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}]), ('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])]
MorphDynaBean对象-->key=endTime,value=123
解析vuls的第3对象-->('612300200001', 1, '', [{'values': '['version']', 'type': 0}, {'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1}])
解析vuls的第3对象-->('612300200002', 1, '', [{'values': '['version']', 'type': 0},{'values': '['%E7%89%88%E6%9C%AC%E5%8F%B7']', 'type': 1},{'values': '['92010']', 'type': 2}])
/
java首先导入以下一个包
json-lib-23-jdk15jar
commons-beanutils-170jar
commons->
以上就是关于小白求教,java中怎么获取ajax发送的json数据全部的内容,包括:小白求教,java中怎么获取ajax发送的json数据、js获取java后台json数据、java中把json怎么转换成数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)