やりたいこと
C#のWEBAPIでPOSTされてきたJSON配列を受け取りたい
単一のJSONファイルを受け取るAPIはできたのですが、複数のJSONが格納されたJSON配列をブラウザから受け取る方法が分かりません。
「Jig」というエンティティクラスを作成し、DBコンテキストに登録しています。
「JSON配列をJigクラス型を引数としたAPIに渡すにはAPI側のどこをどう変更すればいいか」が知りたいです。
C#でWEBAPIの作成経験のある方、アドバイスを頂ければと思います。
os:windows10
ide:visual studio2019
バックエンド:ASP.NET Core WEBAPI 3.0 Entity Framework
フロントサイド:Javascript(Vue.js) ※ソース未記載
ソースコード
C#
[HttpPost("insert")] [ProducesResponseType(typeof(Jig), StatusCodes.Status201Created)] [ProducesResponseType(StatusCodes.Status400BadRequest)] public async Task<ActionResult<Jig>> InsertJig(Jig jig) { try { _logger.LogInformation("InsertJig Start"); if (JigParamCheck(jig) != 0) { return BadRequest(); } //テーブルのデータをSelectする var Jig = await _context.Jig .Where(s => s.Po == jig.Po && s.PoSub1 == jig.PoSub1 && s.IsDeleted != ConstItem.CD_DATA_CNTL_DEL) .FirstOrDefaultAsync(); if (Jig == null) { var insertJig = new Jig() { Po = jig.Po, PoSub1 = jig.PoSub1, PoSub2 = jig.PoSub2, Remark = jig.Remark, IsDeleted = ConstItem.CD_DATA_CNTL_NEW, CreatedAt = DateTime.Now, CreatedUserId = HttpContext.User.Identity.Name, UpdatedAt = DateTime.Now, UpdatedUserId = HttpContext.User.Identity.Name }; _context.Jig.Add(insertJig); await _context.SaveChangesAsync(); _logger.LogInformation("InsertJig Insert Finish"); return CreatedAtAction(CD_TRANS_INSERT, new { id = insertJig.Po }, insertJig); } else { throw new Exception("すでに値が存在します!!!"); } } catch (Exception ex) { _logger.LogError(ex, "InsertJig Error"); throw ex; } }
上記ソースコードを実行しSwagger上でJSON配列をポストした際、以下のエラー文が出ます。
{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "|768239e9-4a798d95973baa0b.", "errors": { "$": [ "',' is invalid after a single JSON value. Expected end of data. Path: $ | LineNumber: 10 | BytePositionInLine: 1." ] } }
まだ回答がついていません
会員登録して回答してみよう