0

私は、JSON 関数を使用して他のシステムと対話するのは比較的新しいものであり、基本的な問題について頭がおならをしているだけかもしれません。

クエリを JSON 文字列として返す API 関数にアクセスします。戻り形式は「プレーン」です。クエリを実行して学校のリストを選択し、戻り文字列として構造体の配列を作成します。

"[{\"city\":\"Adrian\",\"state\":\"MI\",\"school\":\"Adrian College\"},{\"city\":\"Albion\",\"state\":\"MI\",\"school\":\"Albion College\"},.........etc.

だから今、これをクエリオブジェクトに変換して操作する必要がありますが、グーグル/テスト/再グーグル/再テストのループを回っているだけです。これを学校/都市/州を列としてクエリに変換する方法についての指針はありますか?

4

3 に答える 3

2

最初にdeserializeJsonを使用して、文字列を使用可能なものに変換します。

次に、最初の配列要素でStructKeyListを使用して、 QueryNewで使用する列を取得します。

次に、 2つのループを実行します


これに沿って:

<cfset Data = deserializeJson(JsonString) />

<cfif NOT ArrayLen(Data)>
    <cfthrow message="No data" />
</cfif>

<cfset Q = QueryNew( StructKeyList(Data[1]) ) />

<cfloop index="i" array=#Data#>
    <cfset Row = QueryAddRow(Q) />
    <cfloop index="ColName" collection=#Data[i]# >
        <cfset QuerySetCell( Q , ColName , Data[i][ColName] , Row ) />
    </cfloop>
</cfloop>

<cfdump var=#Q# />

理想的には、関数内に配置します (これは、必要に応じて var スコープを意味します)。

于 2012-11-08T16:05:22.827 に答える
0

メソッドを使用する必要があるようですDeserializeJSON()。詳細はこちら

于 2012-11-08T16:02:50.913 に答える
0

解決しました!すべての API リクエストをプロキシし、API クレデンシャルを検証する 2 番目の CFC がありました。そのプロキシ CFC から拡張されたすべての API CFC とプロキシ CFC に returnformat="plain" がありませんでした。

彼らにそれを配置してもらうとすぐに、データは期待どおりに戻ってきました. みんなの提案に感謝します。

于 2012-11-08T16:52:48.673 に答える