遇见问题:
在开发爬虫过程中,我们会遇见提取html页面中的json数据。由于java与js的json格式不同,故需要转化。
举例:
js中json:
{
number: "188**727499",
intLoginType: "4",
areaCode: "0471",
isBusinessCustType: "N",
identifyType: "B",
userLoginType: "4",
password: "",
randomPass: "",
noCheck: "N",
isSSOLogin: "Y",
sRand: "SSOLogin"
}java中json:
{
"number": "188**727499",
"intLoginType": "4",
"areaCode": "0471",
"isBusinessCustType": "N",
"identifyType": "B",
"userLoginType": "4",
"password": "",
"randomPass": "",
"noCheck": "N",
"isSSOLogin": "Y",
"sRand": "SSOLogin"
}我们可以很清晰地看出差别,就是java相对js的json多了双引号。
解决办法:
js格式json互转java格式json
String json = JSON.toJSON(JSON.parse(resultJson)).toString()使用的是fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>java格式json互转js格式json
<script type="text/javascript">
var json=eval('('+data+')');
<script/>
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Invocable invocable = (Invocable) engine;
Object result = invocable.invokeFunction("eval", "'("+json.toString()+")'");
System.out.println(result) ;
本文介绍了在开发爬虫过程中遇到的HTML页面中JSON数据提取问题,详细解释了JavaScript与Java中JSON格式的区别,并提供了两种格式之间的转换方法。

2702

被折叠的 条评论
为什么被折叠?



