안녕하세요 개발자님.
질문의 내용을 잘 이해하지 못하여 예시를 통해 설명 진행하겠습니다.
콘솔에서 차트의 아이템1을 선택하고 개수를 999개로 보내면 아래와 같이 보내지게 됩니다.
{
"postList": [
{
"content": "아이템이 1개인 우편입니다",
"expirationDate": "2021-12-21T10:33:27.711Z",
"reservationDate": "2021-12-20T10:33:27.711Z",
"nickname": "나는야유저1",
"inDate": "2021-12-20T10:33:27.711Z",
"title": "아이템 1개만 보냅니다",
"author": "GM런처",
"sentDate": "2021-12-20T10:33:27.711Z",
"items": [ // 아이템 정보
{
"item": {
"chartFileName": "아이템 차트 파일.xlsx",
"itemID": "i101",
"itemName": "아이템1",
"hpPower": "1"
},
"itemCount": 999,
"chartName": "Chart"
}
]
}
]
}
해당 경우에는 다음과 같이 컬럼별로 아이템 아이디를 만들어 저장할 수 있습니다.
(예외처리가 들어가지 않은 기본 코드입니다.)
var bro = Backend.UPost.GetPostList(PostType.Admin);
JsonData item = bro.GetReturnValuetoJSON()["postList"][0]["items"][0];
string itemId = item["item"]["itemID"];
int count = Int32.Parse(item["itemCount"]); // 혹은 기존 가지고 있는 카운트에 더하기
Param param = new Param();
param.Add(itemId, count);
Backend.GameData.Update("Player_Inventory", new Where(), param);
하지만 생성 가능한 컬럼의 최대 갯수는 290 미만으로 이후 확장성을 위해서는 어려울 수 있습니다.
따라서 컬럼명으로 작성하는 것 보다는 dictionary를 이용하여 한번에 저장하는 것을 추천드립니다.
Dictionary<string, int> items = new Dictionary<string, int>();
var bro = Backend.UPost.GetPostList(PostType.Admin);
JsonData item = bro.GetReturnValuetoJSON()["postList"][0]["items"][0];
string itemId = item["item"]["itemID"];
int count = Int32.Parse(item["itemCount"]); // 혹은 기존 가지고 있는 카운트에 더하기
items[itemId] = items[itemId] + count; // items안에 아이템들이 이미 추가된 상태라는 가정하에
Param param = new Param();
param.Add("items", items);
Backend.GameData.Update("Player_Inventory", new Where(), param);
추측되는 바로는 1번과 같이 itemId별로 하나의 컬럼을 만들어 사용하는 방법에 대해 질문하신 것으로 추측되오며, 코드를 통해 질문에 대한 내용이 맞는지 확인해주시면 감사하겠습니다.