PBJson字符串测试
直接上代码:
-
/*====================================================================
-
> Function: uo_mypdm.of_parse_jsonstr
-
>--------------------------------------------------------------------
-
> 描述: 解析json字符串到数据窗口
-
>--------------------------------------------------------------------
-
> 参数:
-
> string jsonarray[] json结构数组,需调用之前定义
-
> string psjson json字符串
-
> ref datawindow psdw 解析的json结果存储到psdw
-
>--------------------------------------------------------------------
-
> 返回: (none)
-
>--------------------------------------------------------------------
-
> 作者: ldehua 日期: 2023-03-02 09:26:14
-
>--------------------------------------------------------------------
-
> CopyRight(c)
-
>--------------------------------------------------------------------
-
> 修改历史:
-
>
-
====================================================================*/
-
-
Long i
-
Long x1
-
Long x2
-
Long lsrow
-
String json_str
-
String c1,c2
-
string sql
-
String Item[]
-
String field[]
-
String Value[]
-
string pssql
-
-
datastore ds_json
-
ds_json = CREATE datastore
-
ds_json.DataObject = "d_json"
-
psdw.Reset()
-
-
json_str = psjson
-
//先替换嵌套的json,此功能只解析单层的json-----------------------
-
Do While TRUE
-
x1 = Pos(json_str,'[{')
-
x2 = Pos(json_str,'}]') 2
-
If x1 <> 0 Then
-
c1 = Left(json_str,x1 - 1)
-
c2 = Mid(json_str,x2)
-
json_str = c1 '有列表' c2
-
Else
-
Exit
-
End If
-
Loop
-
//---------------------------------------------------------------
-
i = 1
-
mystring.of_globalreplace(json_str,'null','""') //首先替换掉null
-
//遍历字符串,得到key数组--------begin---------------------------
-
Do While json_str <> ""
-
Item[i] = get_token(json_str,'",')
-
mystring.of_globalreplace(Item[i],'{','')
-
mystring.of_globalreplace(Item[i],'"','')
-
mystring.of_globalreplace(Item[i],'}','')
-
i
-
Loop
-
//-------------------------------end-----------------------------
-
//遍历key数组,得到键名和键值----begin---------------------------
-
For i = 1 TO UpperBound(Item[])
-
field[i] = get_token(Item[i],':')
-
Value[i] = get_token(Item[i],':')
-
If Value[i] = 'null' Then Value[i] = ''
-
lsrow = ds_json.InsertRow(0)
-
ds_json.Object.field[lsrow] = field[i]
-
ds_json.Object.value_t[lsrow] = Value[i]
-
Next
-
//-------------------------------end-----------------------------
-
//创建显示用临时表
-
For i = 1 TO UpperBound(jsonarray)
-
sql = jsonarray[i] ' varchar(200) null ,'
-
Next
-
-
pssql = "if object_id('tempdb..#tmp') is not null drop table
-
pssql = "create table #tmp (" Left(sql,Len(sql) - 1) ")"
-
EXECUTE IMMEDIATE :pssql;
-
-
of_getdata( psdw,"select * from #tmp",sqlca)
-
lsrow = psdw.InsertRow(0)
-
For i = 1 TO UpperBound(Value[])
-
psdw.SetItem(lsrow,field[i],Value[i])
-
Next
-
-
destroy ds_json
-
-
-
-
-
-
调用代码
-
string jsonarray[],jsonstr
-
jsonarray = {'Djbh','客户名称','产品名称','产品图号','零件条码号','联系人','联系电话','信息接收人','部门负责人','反馈日期','反馈信息','附件','处理意见','处理人','处理日期','问题类型','责任部门原因分析','临时措施','临时措施责任人','临时措施完成时间','临时措施库存处理方式','永久措施','永久措施责任人','永久措施完成时间','效果验证','质量部长','质量副总','日期','备注'}
-
//---------------解析字符串------------------
-
select json into :jsonstr from bill where djbh='00000244' using sqlca3;
-
myclass.of_parse_jsonstr( jsonarray[], jsonstr, dw_2)
-
//
-
//-----------------------------------------
-
-
-
-
//---------------解析列表------------------
-
//vssql = "select json from bill WHERE DJBH>'00000244'"
-
//
-
//myclass.of_jsonlist( dw_2, jsonarray[], vssql, sqlca3)
-
//-----------------------------------------
-
myclass.of_format_grid( dw_2,'Y')
-
myclass.of_width_auto( dw_2)
-
myclass.of_autosize_rowheight( dw_2)
客户端显示
本方法只解析一个json字符串,可解析外来的json,如果能直连数据库,可采用调用代码中的of_jsonlist方法解析列表。
以下是解析列表:
目前本单位使用,用于解析.NET生成的json
注:本方法只解析json第一层,不解析嵌套json
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbhabe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13