사전을 사용하면 다음과 같이 사전의 가치에 모든 종류의 개체를 쉽게 추가 할 수 있습니다.
Dictionary<string,object> myDict = new Dictionary<string,object>();
myDict.Add("StringList", new List<string>() { "string1", "string2" });
myDict.Add("Bool", false);
myDict.Add("Int", 2016);
개선 답 : 일치 주어진 샘플 JSON
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SO_39849909
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, object> myDict = new Dictionary<string, object>();
myDict.Add("task", new Dictionary<string, object>());
Dictionary<string, object> innerDict = (myDict["task"] as Dictionary<string, object>);
innerDict.Add("taskState", "Running");
innerDict.Add("taskStatus", "Ok");
innerDict.Add("completedSteps", 1);
innerDict.Add("taskProgress", new List<dynamic>());
List<dynamic> taskProgress = (innerDict["taskProgress"] as List<dynamic>);
taskProgress.Add(new { message = "test message", timeStamp = DateTime.Now });
string json = JsonConvert.SerializeObject(myDict, Formatting.Indented);
Console.WriteLine(json);
Console.ReadLine();
}
}
}
는 또한 dotnetfiddle에서 예를 작업하는 여기 그런 다음 JSON으로 그 사전을 직렬화 할 수 https://dotnetfiddle.net/ZYcZKp
입니다.
PS하십시오 조언대로 Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json/)
PS-편집을 사용하여 고려할 수 있습니다 : 런타임 해결에 큰 비용이 수 동적 표현을 사용하는 것이 좋습니다.
희망이 도움이됩니다.
:' "taskProgress": [{ "메시지" : "test message", "timeStamp": "date_time" }]', 내 테스트 메시지와 date_time은 동적이며, 내 솔루션 맥락에서 솔루션을 해결할 수 있다면 도움이 될 것입니다. 감사합니다 – Sumit
그래서 내 대답을 수정하고 샘플 JSON과 함께 1시 1 분을 충족하는 작업 예제를 만들 @Sumit 희망은 이것이 무엇을 기대했다. –
자세한 답변을 주셔서 감사합니다 Cihan, 이전에 내 JSON 응답을 구성하기 위해 JObject를 사용하고 있었기 때문에 이전에 내 문제에 대한 대체 솔루션이 될 것입니다. coz는 전달할 때 "taskProgress"목록을 만들 수 있었지만 JObject를 통해 각 매개 변수를 jToken으로 추가하면 문제가되는 문자열로 항상 이동합니다. 하지만 당신의 솔루션은 나를 위해 일하고 있습니다. 다시 감사드립니다. :) – Sumit