如何读取Json文件的数据

如何读取Json文件的数据,第1张

json文件是一种轻量级的数据交互格式。一般在jquery中使用getJSON()方法读取。

$.getJSON(url,[data],[callback])

url:加载的页面地址

data: 可选项,发送到服务器的数据,格式是key/value

callback:可选项,加载成功后执行的回调函数

1.首先建一个JSON格式的文件userinfo.json 保存用户信息。如下:

?

1234567891011121314151617

[{"name":"张国立","sex":"男","email":"zhangguoli@123.com"},{"name":"张铁林","sex":"男","email":"zhangtieli@123.com"},{"name":"邓婕","sex":"女","email":"zhenjie@123.com"}]

2.其次建一个页面用于获取JSON文件里的用户信息数据,并显示

?

123456789101112131415161718192021222324252627282930313233343536373839404142

<!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"><head><meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" /><title>getJSON获取数据</title><script type="text/javascript" src="js/jquery-1.8.2.min.js"></script><style type="text/css">#divframe{ border:1px solid #999width:500pxmargin:0 auto}.loadTitle{ background:#CCCheight:30px}</style><script type = "text/javascript" >$(function (){ $("#btn").click(function () {$.getJSON("js/userinfo.json", function (data){ var $jsontip = $("#jsonTip") var strHtml = "123" //存储数据的变量 $jsontip.empty() //清空内容 $.each(data, function (infoIndex, info){strHtml += "姓名:" + info["name"] + "<br>" strHtml += "性别:" + info["sex"] + "<br>" strHtml += "邮箱:" + info["email"] + "<br>" strHtml += "<hr>" }) $jsontip.html(strHtml) //显示处理后的数据}) })})</script></head><body><div id="divframe"><div class="loadTitle"><input type="button" value="获取数据" id="btn"/></div><div id="jsonTip"></div></div></body></html>

使用jmeter做接口测试时,经常会要获取json文件中数组中某个相同节点的值。如下述json文件

想要获取claimLabors节点下claimEstimateItemName="前保险杠骨架"且operationType= "03"的partNo。

分析:

1、jmeter中要想获取到claimLabors节点下claimEstimateItemName="前保险杠骨架"且operationType= "03"的partNo值,必须要解析该json文件。所以需要在beanshell中使用第三方jar包,则先要在idea中新建工程jmeterTool

2、在idea中新建工程jmeterTool,并新增类:JsonUtil

这里提供两种方法获取partNo的值。

方法一:通过jsonpath获取partNo的值。

方法getJsonVal得到一个list返回值,因为是某一个具体的值,所以直接使用substring截取[]内的内容即可。

方法二:通过jsonpath获取partNo所属数组的整个节点,再通过map获取partNo的值。

方法getJsonNode得到一个list<Map>对象,因为是list里只有一个对象,所以使用list.get(0)获取到map,再通过map.get("任意字段名称")即可获取对应的值。

上述main方法中的测试,是为了方便后续打jar包。

这里解析json,用到json-path包,所以在工程中需要导入该包:

3、将上述工程打成jar包。

打完包后,进入到包所在的路径下,结构如下:

如果不是上述内容,需要修改一下(将工程的META-INF目录下MANIFEST.MF文件中的内容复制过来即可)。否则cmd测试时会提示:没有**主清单..

4、将打的包放到jmeter安装目录的lib\ext文件夹下

5、打开jmeter,在对应脚本的beanshell中引入该包中的JsonUtil类并调用

ok了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11715684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存