百度获取图片 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对象,主要有以 ...
随机推荐
- java 大数运算[转]
用JAVA 实现算术表达式(1234324234324 + 8938459043545)/5 + 343434343432.59845 因为JAVA语言中的long 定义的变量值的最大数受到限制,例如 ...
- c# 枚举安卓系统中所有目录及文件名
using Android.App; using Android.Widget; using Android.OS; using System.Runtime.InteropServices; nam ...
- 如何实现从Java入门到服务端项目开发的进阶?
对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而言,应该对于学习时间.目标和内容规划有一个清晰的定 ...
- Zuul网关总结
Zuul是Netflix开源的网关服务(gateway service)(https://github.com/Netflix/zuul),提供动态路由.监控.弹性.安全性等功能.最近在公司的项目中用 ...
- 分布式事务(二)Java事务API(JTA)规范
一.引子 既然出现了分布式场景(DTP模型), 大java也及时制定出一套规范来给各大应用服务器.数据库/mq等厂商使用,以方便管理互通--->JTA闪亮登场.JTA(Java Transact ...
- Spark编程指南分享
转载自:https://www.2cto.com/kf/201604/497083.html 1.概述 在高层的角度上看,每一个Spark应用都有一个驱动程序(driver program).驱动程序 ...
- 精读《C++ primer》学习笔记(第四至六章)
第四章: 重要知识点: 4.1 基础 函数调用是一种特殊的运算符,它对运算对象的数量没有限制. 重载运算符时可以定义运算对象的类型,返回值类型,但运算对象的个数,运算符的优先级,结合律无法改变. 当一 ...
- 【Jmeter】Address already in use : connect &&Permission denied: connect 解决方案
Address already in use : connect 该问题的原因为: Windows 提供给 TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收他们.就导致我们在短 ...
- gcc ld 链接器相关知识,调试指令(程序员的自我修养----链接、装载与库)
最近解决一个动态链接上的问题,因为以前从来没有接触过这方面的知识,所以恶补了一下,首先要了解gcc编译指令(makefile),ld链接器的选项(还有连接脚本section指定内存位置),熟悉查看连接 ...
- 【java】之算法复杂度o(1), o(n), o(logn), o(nlogn)
在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示.不仅仅用于表示时间复杂 ...