golang 解析 js json数组


今天写了一个股票的爬虫,直接抓取的接口,返回时是一个json数组。

用go折腾了半天。

说明:js返回的不是标准json,下标未带引号,用正则替换了一下。值得做个学习笔记,希望对后来人有帮助

 

ssname := `[{symbol:"sh600378",code:"600378",name:"昊华科技",trade:"14.940",pricechange:"1.360",changepercent:"10.015",buy:"14.940",sell:"0.000",settlement:"13.580",open:"13.850",high:"14.940",low:"13.610",volume:11316872,amount:164723683,ticktime:"15:00:00",per:23.714,pb:2.454,mktcap:1250755.882506,nmc:302044.28076,turnoverratio:5.59766},{symbol:"sh603322",code:"603322",name:"超讯通信",trade:"21.340",pricechange:"1.940",changepercent:"10.000",buy:"21.340",sell:"0.000",settlement:"19.400",open:"20.010",high:"21.340",low:"20.010",volume:5783940,amount:121778331,ticktime:"15:00:00",per:85.36,pb:7.793,mktcap:334013.68,nmc:334013.68,turnoverratio:3.69534}]`

re := regexp.MustCompile(`([a-zA-z]+):`)
ssname = re.ReplaceAllString(ssname, "\"$1\":")
fmt.Println(ssname)
listStrByte := []byte(ssname)

//jsonObj, eee := gjson.DecodeToJson(listStrByte)
// 这里的数据类型一开始定义成了map数组,折腾半天
var jsonObj []interface{}
eee := json.Unmarshal(listStrByte, &jsonObj)
fmt.Println("抓取结果", jsonObj, eee)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM