2017-12-20 4 views
-3

私はPHPの背景から来ています。フェニックスのフレームワークで自分のプロジェクトのバックエンドAPIを書き直す予定です。elixir/phoenixでカスタムJSONエンコード/デコードを行う方法

私のフロントエンドは応答して、いくつかのより多くのカスタムプロパティがあります

{ 
    "totalCount": 2, 
    "results": [ 
     { 
      "idUser":1, 
      "name": "test" 
     }, 
     { 
      "idUser":2 
      "name": "test2" 
     } 
    ], 
    "success": true, 
    ..... 
} 

この形式でのAPIのJSONレスポンスを期待しています。フロントエンドロジックを変更せずにカスタムJSONレスポンスを送信するために使用できるライブラリはありますか?

私はpoisonライブラリを見ましたが、どうすればこのような応答を返すことができるのかよく分かりません。私はElixir/Phoenixフレームワークにはかなり新しいです。私は本当に正しい方向に私を指すための助けに感謝します。

+0

毒、それを試すことができます – beiping96

+1

これはここにofftopicです。最初に[よくある質問](https://stackoverflow.com/help/how-to-ask)ガイドをお読みください。また、提供される応答の例は、有効なJSONではなく**です。 – mudasobwa

答えて

0

デフォルトでは、PheonixはPoisonを使用します。そのように使用することができるヘルパーメソッドjsonがあります:

defmodule MyController do 
    use Phoenix.Controller 
    def result(conn, _params) do 
    conn 
    |> put_status(:ok) 
    |> json(%{"totalCount" => 2, 
       "results" => [ 
       %{ 
        "idUser" => 1, 
        "name" => "test" 
       }, 
       %{ 
        "idUser" => 2, 
        "name" => "test2" 
       } 
       ], 
       "success" => true 
      }) 
    end 
end 
1

ここは例です。 結果が配列である必要がありますか?

defmodule Test do 
    def hello do 
    Poison.encode!(
     %{ 
     "totalCount" => 2, 
     "results" => [ 
      %{ 
      "idUser" => 1, 
      "name" => "test" 
      }, 
      %{ 
      "idUser" => 2, 
      "name" => "test2" 
      } 
     ], 
     "success" => true, 
     } 
    ) 
    end 

end 
Test.hello() 
関連する問題