2012-04-06 4 views
4

MVC4(ベータ版)の問題について私はしばらくの間苦労しています。問題は私のwebapiのためにオブジェクト名が追加されたjsonを作成したいということです。受信側がこれを必要とするため、jsonを作成する必要があります。私の.NET/MVCの知識は限られていますので、私に同行してください。私は主題を検索しようとしましたが、MVC4がまだベータ版であるので、この件に関する良い情報を見つけるのは難しいです。MVC4:Jsonにオブジェクト名を含める

は、私はすでに私の溶液中のJSON.NETフォーマッタを輸入しているが、これは

今MVC4で作成されたJSONオブジェクト名を追加しません:

[{"ID":36,"Name":"Test3","Description":"Description Test3"},{"ID": 37,"Name": "Test4","Description": "Description Test4"}] 

そして私は希望jsonは次のようになります:

{"Goal":[{"ID":36,"Name":"Test3","Description":"Description Test3"},{"ID": 37,"Name": "Test4","Description": "Description Test4"}]} 

私はオブジェクト名(目標)がjsonに含まれるのが好きです。

私はこのために使用しています私のAPIコントローラ内のコードは次のとおりです。

StoreDBContext db = new StoreDBContext(); 

    // 
    // GET /api/goals 
    public IQueryable<Goals> Get() 
    { 
     return db.Goals; 
    } 

私はオブジェクト名を追加するにはどこかをループする必要があると仮定し、私はどのように...うまくいけば、誰かができることを確認していないですこれで私を助けてください!このような

+2

これは有効なJSONではありません。 – SLaks

+0

投稿を編集しました。あなたはジョーンズが正当ではなかったのは間違いありません。今すぐ(http://jsonlint.com/で検証済み)私はそれがこの方法であることを意味しました。 – Hugo

+0

私の質問の答えを与えてください [ここにリンクの説明を入力します] [1] [1]:http://stackoverflow.com/questions/31323528/json-error-in-retrieving- SQL-server-in-mvc4からのデータ –

答えて

3

戻り何か:

new { Goal = db.Goals().AsEnumerable().ToList() } 

あなたがオブジェクトでないプロパティやものを追加する匿名オブジェクトを使用することができます。

JSON.NET用にカスタムコンバータを作成することもできます。ただし、出力を逆シリアル化する必要がない場合は、上記の解決方法が有効です。

+0

返信いただきありがとうございます!現時点では、私は実際にはデシリアライゼーションを気にしないので、この解決策で十分です。しかし、dbオブジェクト(StoreDBContext)には、Getメソッドが実装されていないようです。 上記のコマンドを返そうとすると、次のエラーが表示されます。 'StoreDBContext'に 'Get'の定義が含まれず、 'StoreDBContext'タイプの最初の引数を受け入れる 'Get' ここに何かが見つからないのですか? – Hugo

+0

@Hugo申し訳ありませんコードサンプルを誤読しています。コードを更新しました。 –

+0

更新いただきありがとうございます。次のエラーが表示されます。暗黙のうちに型 'System.Collections.Generic.IEnumerable 'を 'System.Linq.IQueryable 'に変換します。明示的な変換が存在します(キャストがありませんか?) コードを使っていますが、動作させることはできません。 – Hugo

関連する問題