百度获取图片 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对象,主要有以 ...
随机推荐
- Windows7 Autoconfiguration IPv4 Address 导致无法上网
Windows7 Autoconfiguration IPv4 Address 导致无法上 (2010-03-30 16:44:57) 转载▼ 标签: 杂谈 分类: 电脑软件问题 Windows7 A ...
- tomcat catalina.out乱码
启动参数添加-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8解决
- Fiddler2如何对Android应用进行抓包
Fiddler2抓包工具的下载和使用 2018-04-22 18:06:37 0 0 0 Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个h ...
- update_engine-整体结构(三)
在update_engine-整体结构(二)中分析到了Action,那么我们接着继续分析. 首先来看一下BuildUpdateActons(...)这个方法. src/system/update_en ...
- Routemanage类方法详解
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...
- JetBrains GoLand 注册码
选择license server 输入 http://idea.youbbs.org 完成 要求联网
- webAPP如何实现移动端拍照上传(Vue组件示例)?
摘要:使用HTML5编写移动Web应用,主要是为了尝试一下“一套代码多处运行”,一个webapp几乎可以不加修改的运行在PC/Android/iOS等上面运行.但是写到现在觉得虽然这种方式弊大于利,不 ...
- 黄聪:C#获取网页HTML内容的三种方式
C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse. 方法一:使用WebClient static void ...
- 2018秋寒假作业6—PTA编程总结3
1.实验代码 7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T) ...
- 最大化及等比例测试演化Demo-Grid方法
Demo1-简单测试: <!doctype html> <html> <head> <meta charset="utf-8"> & ...