百度获取图片 json格式解析
var
h,i: integer;
ss, url: string;
mem: TMemoryStream;
str1: tstringlist;
memstr: TStringStream;
iddec: TIdEncoderMIME;
JSONObject,JSONObject2: TJSONObject; // JSON类
jsonArray: TJSONArray; // JSON数组变量
temp: string; // 临时使用变量
begin
token := '24.49a7c8acdbf69413ce0f998ad39a7a3d.2592000.1548050649.282335-9533039'; //图片获取的token
if token = '' then
Application.MessageBox('请输入token', '提示', MB_OK + MB_ICONINFORMATION + MB_TOPMOST)
else if cxImage1.Picture.Width = then
Application.MessageBox('请先载入图片', '提示', MB_OK + MB_ICONSTOP + MB_TOPMOST)
else
begin
iddec := TIdEncoderMIME.Create;
screen.Cursor := crhourglass;
// ssl.SSLOptions.Method:= sslvSSLv3;
memstr := TStringStream.Create;
mem := TMemoryStream.Create;
str1 := tstringlist.Create;
try
cxImage1.Picture.SaveToStream(mem);
mem.Position := ;
ss := iddec.Encode(mem); // *******
mem.Free; //提交
str1.Add('image=' + URLEncode(ss));
url := 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=';
// https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=
// https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic ?access_token=
url := url + token; RESTRequest1.AddParameter('image', ss); //传送一个图片的流
RESTClient1.BaseURL := url;
restrequest1.Execute;
ss := RESTResponse1.Content; //获取返回值
finally memstr.Free;
str1.Free;
iddec.Free;
screen.Cursor := crdefault;
end;
JSONObject := nil;
JSONObject:=TJSONObject.ParseJSONValue(Trim(ss)) as TJSONObject;
if JSONObject.Count > then
begin
{ 1,遍历JSON数据 }
mmo2.Lines.Add('遍历JSON数据:' + ##);
mmo2.Lines.Add('JSON数据数量:' + IntToStr(JSONObject.Count));
for i := to JSONObject.Count - do
begin
if i = then
begin
temp := JSONObject.Get(i).ToString + ##;;
end
else
begin
temp := temp + JSONObject.Get(i).ToString + ##;
end;
end;
mmo2.Lines.Add(temp);
temp := 'words = ' + JSONObject.Values['words_result'].ToString + ##;
jsonArray := TJSONArray(JSONObject.GetValue('words_result'));
if jsonArray.Count > then
begin
// 得到JSON数组字符串
temp := 'other = ' + JSONObject.GetValue('words_result').ToString + ##; // 循环取得JSON数组中每个元素
for i := to jsonArray.Size - do
begin
JSONObject2:=TJSONObject.ParseJSONValue(Trim(jsonArray.Items[i].ToString)) as TJSONObject;
temp := temp + IntToStr(i + ) + ' : ' + JSONObject2.Values['words'].ToString + ##;
end;
end;
Mmo2.Lines.Add(temp);
end; // mmo2.Lines.Add(SJson.GetValue('words').ToString);
h := pos('words":', ss);
if h > then
begin
while h > do
begin
delete(ss, , h + );
delete(ss, , pos('"', ss));
mmo1.Lines.Add(copy(ss, , pos('"', ss) - ));
h := pos('words":', ss);
end;
end
else
mmo1.Lines.Add(ss); end;
end;
百度获取图片 json格式解析的更多相关文章
- plist文件、NSUserDefault 对文件进行存储的类、json格式解析
========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...
- JSON格式解析和libjson使用简介(关于cjson的使用示例)
JSON格式解析和libjson使用简介 在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据 ...
- html中通过js获取接口JSON格式数据解析以及跨域问题
前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...
- 几种不同的json格式解析
转连接: http://blog.csdn.net/whx405831799/article/details/42171191 内容很好 给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分 ...
- javascript json格式解析方法
json.parse用于从一个字符串中解析出json对象 stringify()用于从一个对象解析出字符串 var dataObj = eval("("+json+")& ...
- java获取本地json格式的内容
前言 该功能模块基于springBoot,自己在开发中遇到相关功能开发,总结如写: 1.首先将所需要获取的json文件放在项目resource目录下: 2.所需要的pom依赖: <depende ...
- jq获取后台json并解析
参考: $(function () { $.ajax({ url: 'tsconfig.json', type: 'GET', dataType: 'json', timeout: 1000, cac ...
- 前端 ajax 获取后台json数据 解析
先贴代码 function edit(node) { ).text(); alert(customerid) $.ajax({ type: "post", url: "/ ...
- 8. js中json格式解析
var doc = O_PARAMETER.FJSonStr;(doc为:{"items":[],"nextId":0}) //1.先转为json对象,主要有以 ...
随机推荐
- DataGrip for Mac破解步骤详解 亲测好用
https://blog.csdn.net/le945926/article/details/81912085
- Shell脚本出现$'\r': command not found
Centos7下执行shell脚本报错如下 [root@ip---- ~]# sh install_zabbix_agent.sh install_zabbix_agent.: $'\r': comm ...
- 18.17 U-Boot+内核移植
18.17.1 移植U-Boot-2012.04.08 1.下载.建立source insight工程.编译.烧写.如果无运行分析原因. $ .tar.bz2 $ cd u-boot- $ make ...
- 3.认识Angular2组件之1
简述:组件(component)是构成Angular应用的基础和核心.可以这样说,组件用来包装特定的功能,应用程序的有序运行依赖于组件之间的协同工作. 1. 组件化标准:W3C为了统一组件化的标准方式 ...
- Spring Cloud(Dalston.SR5)--Config 集群配置中心-刷新配置
远程 SVN 服务器上面的配置修改后,需要通知客户端来改变配置,需要增加 spring-boot-starter-actuator 依赖并将 management.security.enabled 设 ...
- 【Algorithm】字符串编辑距离(Levenshtein距离)C++算法实现
算法实现比较简单,但算法原理不明白,有空了再研究一下. unsigned LevenshteinDistance(const string& s1, const string& s2) ...
- SQL脚本--总耗CPU最多的前个SQL --平均耗CPU最多的前个SQL
--总耗CPU最多的前个SQL SELECT TOP 20 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.t ...
- listener.starting()源码探究
容器启动时,监听器调用starting方法,本质是找到匹配的监听器,广播事件,开始监听 上节对寻找匹配监听器做了分析,其是这个过程比较重要的部分,本文开始监听,反而不是那么复杂,如下: 找匹配监听器就 ...
- WIN10X64_LTSB2016极限精简版by双心
WIN10X64LTSB2016极限精简版by双心http://www.cnblogs.com/liuzhaoyzz/p/9162113.html 一.前言:关于极限精简版的说明 本系统为极限精简版, ...
- final link failed: Nonrepresentable section on output
编译live555的时候遇到了这个问题,前面的编译没有问题,是在链接的时候出现的,在网上搜索说是缺少 libstdc++ 库.于是,安装之 #sudo apt-get install libstdc ...