var
jo,arry,bb: ISuperObject;
strSQL,sResult,stmp: string;
sZTBH: string;
arry1: TSuperArray;
begin
stmp := ' {"gqcpbh":[{"cpbh":"0101"},{"cpbh":"0602"}],"resmsg":"資料查詢成功","resid":"0"}';
jo := SO(stmp);
bb := SO('{eee:seee,ooo:st}');
jo['a']:=SA([]);
jo.A['a'].Add(bb);
jo.A['a'].Add(so('{11:33}'));
Memo1.Lines.Add(jo.AsJSon(true,true));
理論上得出:
{
"a": [
{
"eee": "seee",
"ooo": "st"
},
{
"11": 33
}
],
"gqcpbh": [
{
"cpbh": "0101"
},
{
"cpbh": "0602"
}
],
"resid": "0",
"resmsg": "資料查詢成功"
}
實際得出:
{
"gqcpbh":
{
"cpbh": "0101"
},
{
"cpbh": "0602"
},
"a":
{
"ooo": "st",
"eee": "seee"
},
{
"11": 33
},
"resmsg": "\u6570\u636e\u67e5\u8be2\u6210\u529f",
"resid": "0"
}
問題:
1. 陣列的中括號沒有了;
2. 中文變成了編碼;
請高手解釋一下,如何寫才能得到理論結果?
uj5u.com熱心網友回復:
說明:我用的 SuperObject 版本為 V1.5uj5u.com熱心網友回復:
用你的代碼測驗沒有問題,不過我的SuperObject是1.2的,D7用不了高版本的,亂碼把AsJSon第二個引數設為False。
uj5u.com熱心網友回復:
Delphi高版本內置JSON庫,可以試試uj5u.com熱心網友回復:
你說的沒有問題是什么意思?那中括號還存在嗎?應該是存在才對的,為什么轉化后就不見了呢?
亂碼是默認用unicode的問題,改第二個引數為FALSE就OK了。
uj5u.com熱心網友回復:
中括號還在,格式是正常的,可以被正確識別出來,可能是你的superobject有問題,換個試試?
uj5u.com熱心網友回復:
用你的代碼測驗沒有問題,不過我的SuperObject是1.2的,D7用不了高版本的,
亂碼把AsJSon第二個引數設為False。
D7, SuperObject1.2版本執行正確的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24128.html
標籤:語言基礎/算法/系統設計
下一篇:python
