德尔福怎么处理JSON格式数据

  介绍

本篇内容主要讲解“德尔福怎么处理JSON格式数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“德尔福怎么处理JSON格式数据”吧!

  1下载/安装组件uLkJSON。不是
2下载/安装组件strprocess。不是


使用SuperObject uLkJSON strprocess;
//POST JSON数据格式的请求


过程TForm1。btnPostRequestClick(发送方:TObject);
var
,Url, strBandID、strShopID str3、str4 strCoin:字符串;//请求地址
,strReqJson: TStringStream;
,JsonReceived JsonSend:, TlkJSONobject;
,strResp:字符串;

开始,//请求地址
,Url:=& # 39; http://localhost: 8080/testdelphi/servlet/ServletDelphi& # 39;;
,//请求参数{“bandid":“手环ID",“shopid":“场地ID",“sign":“参数签名“}
,//创建一个包含JSON数据的变量,这种格式有问题吗?


,,strBandID:=& # 39; 000001 & # 39;;
,,strShopID:=& # 39; 000001 & # 39;;


,,JsonSend:=TlkJSONobject.Create;//必须先创建一个对象
,,JsonSend.Add (& # 39; bandid& # 39;, strBandID);
,,JsonSend.Add (& # 39; shopid& # 39;, strShopID);
,,JsonSend.Add(& # 39;符号# 39;,getSignature (strBandID + strShopID));


,,strReqJson:=TStringStream.Create (TlkJSON.GenerateText (JsonSend));
,,memo1.Lines.Clear;
,,memo1.Lines.add (strReqJson.DataString);
,,strReqJson。位置:=0;
,试着
,,IdHTTP1.Request。ContentType:=& # 39; application/json # 39;;
,,strResp:=IdHTTP1。帖子(URL, strReqJson);
,,memo2.Lines.Clear;
,,Memo2.Lines。文字:=strResp;
,//错误的JSON数据格式,为什么会多了[]:[{“code":“0“,“message":“success",“object": {“bandid":“000001”,“coin":“5”;}}]
,//返回正确的JSON数据格式{“code":“0“,“message":“success",“object": {“bandid":“000001”,“coin":“5”;}}
,,,
,,JsonReceived:=TlkJSON.ParseText (TrimRightChar (TrimLeftChar(修剪(strResp) & # 39;[& # 39;), & # 39;] & # 39;))作为TlkJSONobject;
,,Jstart。//场为jbase时,
,,strBandID:=vartostr (JsonReceived.Field[& # 39;对象# 39;].Field [& # 39; bandid& # 39;]。value);
,,memo3.Lines.Clear;
,,memo3.Lines.add (strBandID);
,,Jstart。//场有子数据为jslist时
,,strCoin:=vartostr (JsonReceived.Field[& # 39;对象# 39;].Field[& # 39;硬币# 39;]。value);
,,memo3.Lines.add (strCoin);


,,,,,,,
最后
,,JsonSend.Free;
,,JsonReceived.Free;
,最后,
结束;






文件ServletDelphi。java


进口java.io.IOException;
进口java.io.InputStream;
进口java.io.PrintWriter;


进口javax.servlet.ServletException;
进口javax.servlet.http.HttpServlet;
进口javax.servlet.http.HttpServletRequest;
进口javax.servlet.http.HttpServletResponse;


进口net.sf.json.JSONArray;
进口net.sf.json.JSONObject;




公共类ServletDelphi扩展HttpServlet {


/* *
*对象的构造函数。
*/
公共ServletDelphi () {
超级();
}


/* *
* servlet的破坏。& lt; br>
*/
公共空间摧毁(){
super.destroy ();//把“destroy"字符串在日志
//把代码放在这里
}


/* *
* servlet的doGet方法。& lt; br>
*
*表单时调用此方法有其标记方法等于获取价值。
*,
* @param请求发送的请求客户机到服务器
* @param响应响应由服务器发送到客户端
* @throws ServletException如果一个错误发生
* @throws IOException如果一个错误发生
*/
公共空间doGet (HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException, IOException {


response.getWriter () .println (“Hello Servlet Delphi !“);
}


/* *
* doPost方法,Servlet。& lt; br>
*
*表单时调用此方法有其标签值等于post方法。
*,
* @param请求发送的请求客户机到服务器
* @param响应响应由服务器发送到客户端
* @throws ServletException如果一个错误发生
* @throws IOException如果一个错误发生
*/
公共空间doPost (HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException, IOException {


字符串strJson=inputStream2String (request.getInputStream ());
//System.out.println(“接收json:“+ json);null

德尔福怎么处理JSON格式数据