さて、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行で済みますので、
要素が多い時は大変便利ですね。
もっと簡単にできる方法があるような気もしますが...
DelphiのJSONライブラリとWebCoreのライブラリとあるようで
私自体が混乱しています。
日本語の情報ないですよね...
JSONだけJavaScriptかけるかなあ
実はWebCoreプロジェクトではDelphi内にインラインで
JavaScriptが書けるんですよね。
その場合の内外との連携がわからないので今は書けてないのですが、
Pas2jsでJavaScriptにするんでコンパイラとしては
負担はなさそうな気がします。
だんだんわかってきました。Reactはやりたくないが
Svelteはやってみようかと思っている私です。(笑)
みなさんTMSWebcore使ってみてくださいな。
TMSWEBCore+NodeRedでシステム組んでいます。
ではでは。