답변:
유형이 지정된 개체가 필요하지 않거나 필요하지 않은 경우 다음을 시도하십시오.
using Newtonsoft.Json;
// ...
dynamic json = JsonConvert.DeserializeObject(str);
또는 입력 된 객체를 사용해보십시오.
Foo json = JsonConvert.DeserializeObject<Foo>(str)
이 작동합니다
string str = "{ 'context_name': { 'lower_bound': 'value', 'pper_bound': 'value', 'values': [ 'value1', 'valueN' ] } }";
JavaScriptSerializer j = new JavaScriptSerializer();
object a = j.Deserialize(str, typeof(object));
tradedoubler json 결과를 클래스로 변환하기 위해 며칠 전에 사용했던 매우 강력한 도구를 사용하여 json에 강력한 유형 클래스 기반을 두는 것이 또 다른 목표를 달성하는 흥미로운 방법이 있습니다
간단한 도구입니다 : json 소스 페이스트를 복사 하면 몇 초 안에 강력한 json 지향 클래스가 생깁니다 . 이런 식으로보다 강력하고 사용하기 쉬운 클래스를 사용하게됩니다.
나는 그것이 당신을 도울 수 있기를 바랍니다
다음과 같이 시도해 볼 수 있습니다.
string output = JsonConvert.SerializeObject(jsonStr);
JObject의 경우 작동하지 않습니다. 이것은 간단한 json 형식 데이터에서 작동합니다. 아래 json 형식 데이터의 데이터를 형식으로 역 직렬화하려고 시도했지만 응답을 얻지 못했습니다.
이 Json을 위해
{
"Customer": {
"id": "Shell",
"Installations": [
{
"id": "Shell.Bangalore",
"Stations": [
{
"id": "Shell.Bangalore.BTM",
"Pumps": [
{
"id": "Shell.Bangalore.BTM.pump1"
},
{
"id": "Shell.Bangalore.BTM.pump2"
},
{
"id": "Shell.Bangalore.BTM.pump3"
}
]
},
{
"id": "Shell.Bangalore.Madiwala",
"Pumps": [
{
"id": "Shell.Bangalore.Madiwala.pump4"
},
{
"id": "Shell.Bangalore.Madiwala.pump5"
}
]
}
]
}
]
}
}
JSon 문자열에 작은 따옴표 대신 ""큰 따옴표가 있고 다음 줄의 표시기로 \ n이있는 경우 아래에 표시된 것처럼 올바른 JSon 문자열이 아니기 때문에이를 제거해야합니다.
SomeClass dna = new SomeClass ();
string response = wc.DownloadString(url);
string strRemSlash = response.Replace("\"", "\'");
string strRemNline = strRemSlash.Replace("\n", " ");
// Time to desrialize it to convert it into an object class.
dna = JsonConvert.DeserializeObject<SomeClass>(@strRemNline);