关于matlab解析json的笔记

烈酒焚心 提交于 2021-02-19 08:13:17

Matlab访问RESTful接口

MATLAB® RESTful Web 服务函数 webreadwebsavewebwrite 和 weboptions 允许非编程人员使用 HTTP GET 和 POST 方法访问多个 Web 服务。

在我们的场景里只要用webread函数就可以了,webread函数从制定的web服务中读取url并返回页面内容data

 

data = webread('https://www.npclo.com/api/modeling?oid=5a37186c0246a33384333cba');

 

 Matlab解析Json

matlab本身没有解析json数据的函数,在matalb官网论坛上可以找到两个解析json的第三方库(函数):json4mat和parse_json。

根据网上资料显示两个函数均可实现json解析,但json4mat速度更快,所以我优先尝试了json4mat,但是出现数组越界的报错。经确认,页面上返回的数据符合json格式,反复debug也没有找到原因所在,选择放弃。

然后我尝试了parse_json函数,一次成功,没有报错。但是得到的数据是struct数据,只能用鼠标点开,不知道如何自动读取具体数据。

cell和struct的转换

参考:https://blog.csdn.net/kyang624823/article/details/78678075

 

元胞数组:与数组的区别是每个元素可以是不同类型的,可是不同大小的矩阵,也可以是字符串,结构体等, 使用元胞数组要区分(),{}的区别。     

{ }:可以返回一个元胞中的具体数据; () :返回该位置的数组类型信息

 

1)创建元胞数组

>> c(1,1)={[1,2;3 4]}; 

>> c(1,2)={'tom is a sb'}; 

>> c(2,1)={[1,2,3,4,5,6]}; 

>> c(2,2)={struct('name','rose','age',21)}; 

>> c 

c =  

    [2x2 double]    'tom is a sb' 

[1x6 double]     [1x1 struct] 

 

 

 

2)调取元胞数组的元素

>> c(1,1) 

ans =  

    [2x2 double] 

>> c{1,1} 

ans = 

     1     2 

     3     4 

>>  

 

实验结果

浏览器访问后台接口的结果:

Matlab访问后台接口得到json数据解析后得到的数据结果:

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!