magicParseJSONで取り込んだデータの型が文字列から数値へ変換されてしまう

JSONの取り込みにmagicParseJSONを使用しています。

以下の様なJSONを取り込むとします。

{"lat":"35.6569176", "lng":"139.7044403"}

これをMy Connector Developer上のData Previewで確認すると、想定通りに

lat                     lng

35.6569176  139.7044403

表示されるのですが、DataSetとして一旦取り込んだ後で確認すると

lat      lng

35.6669  176  139.70

となってしまいます。

 

実際のJSONはネスト構造で属性も多い為、できればmagicParseJSONを使いたいとおもっているのですが

型が変換されない方法、または、変換されたとしても小数点以下を正しく反映させる方法がありませんでしょうか。

Comments

  • honda
    honda Contributor

    こんにちは。

    CustomConnectorのData Preview上ではうまくいっているということなので、

    どこで型が変わってしまっているかが詳しく分かっていないのですが。。。

    データセットとして表示するためのグリッドのデータ型設定は正しくされていますでしょうか?

    例:datagrid.addColumn(‘amount’, datagrid.DATA_TYPE_DOUBLE)

  • 返信ありがとうございます。

    Domoのサンプルをみると、 magicParseJSONはデータ型のグリッドへの定義は必要とせず、単純にオブジェクトを引数に指定するだけで、DataSetに展開されるようなので、特に何も設定せずに実行しています。

    そこで、 magicParseJSONを使用せず、datagridで型を定義して実施してみました。

    結果としては、magicParseJSONを使用した場合と同じように文字列として定義したカラムであっても数値に変換されてしまうという事象が発生しました。

     

    以下コード例)

    datagrid.addColumn("lat",datagrid.DATA_TYPE_STRING);
    datagrid.addColumn("lng",datagrid.DATA_TYPE_STRING);

    for(var i in data){
     var item = data[i];
     datagrid.addCell(item.alog_lat + "°");
     datagrid.addCell(item.alog_lon + "°");
     datagrid.endRow();
    }

    DATA_TYPE_STRINGで明示的に型宣言しているにもかかわらず、DataSetには数値型で登録されてしまっている状況です。