Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

TMS WebCore JSONからの取り出し記法

さて、TMS Webcoreです。

WebSocketから受信した時にJSON形式の伝文で送られてきた場合の

値取り出しについて、あまりに情報がないので、書いておきます。

 

通常はhogeのキーでstrに値が取り出されますが文字列です。

str:=jo.GetJSONValue('hoge');

という記法がBasicなやり方みたい。

しかし文字->数値変換などが必要な場合、

関数をかまさないといけません。

JavaScript側で数値だったものをJSONにしてまたDelphi側に数値で戻したい

わけです。

できることはわかっていますが、記法が面倒だなということで、調べますと、

GetValueで数値型へ代入できました。

    
var jo:TJSONObject;
    s:string;
    js:TJSON;
    v:integer;
begin
 js:=TJSON.Create;
 s:=SocketData.jsobject.toString;
 jo:=TJSONObject(js.parse(s));

 v:=(jo.GetValue('hoge') as TJSONNumber).AsInt;
    
    :
    :
    
end;

となります。

これでキーhogeをIntegerで取り出すのが1行で済みますので、

要素が多い時は大変便利ですね。

もっと簡単にできる方法があるような気もしますが...

 

DelphiJSONライブラリとWebCoreのライブラリとあるようで

私自体が混乱しています。

日本語の情報ないですよね... 

JSONだけJavaScriptかけるかなあ

実はWebCoreプロジェクトではDelphi内にインラインで

JavaScriptが書けるんですよね。

その場合の内外との連携がわからないので今は書けてないのですが、

Pas2jsでJavaScriptにするんでコンパイラとしては

負担はなさそうな気がします。

 

だんだんわかってきました。Reactはやりたくないが

Svelteはやってみようかと思っている私です。(笑)

 

みなさんTMSWebcore使ってみてくださいな。

 

TMSWEBCore+NodeRedでシステム組んでいます。

 

ではでは。