C # 문자열 객체를 JSON 변환하시겠습니까

C # 에서 문자열 객체를 JSON 으로 변환할 수 있다. 정말 간단한 테스트를 통해 사례:

JavaScriptSerializer json_serializer = new JavaScriptSerializer();
object routes_list = json_serializer.DeserializeObject("{ \"test\":\"some data\" }");

문제는 routes_list 배반자들의 설정됨. # 39 의 it& 정의되지 않은 천체이다. 아무 생각 없어?

질문에 대한 의견 (4)

또는 다음과 같이 영원운소프t.j슨 라이브러리를 사용할 수 있습니다.

using Newtonsoft.Json;
...
var result = JsonConvert.DeserializeObject(json);

여기서 'T' 는 자신의 객체 유형에 맞는 JSON 구체화하십시오.

해설 (3)
해결책

39, re trying to 데즈리얼리즈 맞추기바인딩 기초형상 객체에는 you& 것 같습니다. 클래스를 작성할 수 있습니다 # 39 로 변환, re you& 객체를 나타냅니다. 이 경우에, re 다루는 가장 유용한 약간만이라도 you& # 39 더 큰 객체 또는 JSON 써줬지

예를 들면 다음과 같습니다.

  class Test {

      String test; 

      String getTest() { return test; }
      void setTest(String test) { this.test = test; }

  }

그런후에도 너회의 역직렬화를 코드 다음과 같습니다.

   JavaScriptSerializer json_serializer = new JavaScriptSerializer();
   Test routes_list = 
          (Test)json_serializer.DeserializeObject("{ \"test\":\"some data\" }");

이 자습서는 보다 자세한 정보를 얻으실 수 있습니다. http://www.codeproject.com/Tips/79435/Deserialize-JSON-with-Csharp.aspx

해설 (5)

39, 아마 don& 너희가운데 표시됨과 routes_list 싶지 않다 '그냥' 객체에는 유형:. # 39 이 doesn&, t, t # 39 aren& 투명지에 스테스트 속성, 정말 좋은 전부터예요 객체에는 가져올 수 있을 것입니다. 이것은 당신이 약간만이라도 그 중 한 곳을 더 나은 끄기도구 정의중 클래스 또는 구조체입니다 또는 활용할 동적임 키워드.

진짜 원한다면, 이 때, ll need to know 코드를 작동합니까 할꺼이나 you& # 39 는 일반 문자열 객체를 해당 객체를 반환되었습니다 데즈리얼리제로비치 의해 사전. # 39 의 코드는 here& 이를 이쪽요:

var json_serializer = new JavaScriptSerializer();
var routes_list = (IDictionary)json_serializer.DeserializeObject("{ \"test\":\"some data\" }");
Console.WriteLine(routes_list["test"]);

만약 동적임 키워드, 읽을 수 있어 어떻게 여기.

선언할 경우, 대신 같은 클래스 또는 구조체입니다 데즈리얼리즈 데즈리얼리제로비치 그러하매 문의할 수 있습니다.

class MyProgram {
    struct MyObj {
        public string test { get; set; }
    }

    static void Main(string[] args) {
        var json_serializer = new JavaScriptSerializer();
        MyObj routes_list = json_serializer.Deserialize("{ \"test\":\"some data\" }");
        Console.WriteLine(routes_list.test);

        Console.WriteLine("Done...");
        Console.ReadKey(true);
    }
}
해설 (3)

함께 사용하여 동적 객체 자바스크리프체리아리처.

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
dynamic item = serializer.Deserialize("{ \"test\":\"some data\" }");
string test= item["test"];

//test Result = "some data"
해설 (0)

자바 스크립트 뉴턴소프트 는 시리얼 보다. . 이 번호요 누제 패키지로의 인기를 얻었고, 시리얼, 이는 보다 기본값입니다 뉴턴소프트 따라 다릅니다.

한 줄로 코드 솔루션입니다.

var myclass = Newtonsoft.Json.JsonConvert.DeserializeObject(Jsonstring);

Myclass oMyclass = Newtonsoft.Json.JsonConvert.DeserializeObject(Jsonstring);
해설 (0)

39 의 단순한 클래스 I 벨기에 하나로 취합하려면 here& 다양한 우려된다. # 39 의 약 15 분간 테스트됨 it& 일하고 싶은 것, 하지만 내 작업을 할 수 있습니다. It in your app 이 일을 할 수 있는 '는' 자바스크리프체리아리처 referenced 정보를 사용하여 자세한 [이 게시물로의] (https://stackoverflow.com/q/7000811/26510).

아래 코드를 실행할 수 있는 링크파드 테스트하려면 아웃해야 기준:

  • 당신의 스크립트입니다 탭에 마우스 오른쪽 버튼으로 클릭하면, 선택, 링크파드 &quot 쿼리하지. Properties&quot.
  • 참조하는 System.Web.Extensions.dll&quot "; &quot 에서, 추가 References&quot.
  • &Quot 추가, 추가 이름공간이 Imports&quot. 의 system.web.script.serialization&quot ";).

이를 통해 희망을!

void Main()
{
  string json = @"
  {
    'glossary': 
    {
      'title': 'example glossary',
        'GlossDiv': 
        {
          'title': 'S',
          'GlossList': 
          {
            'GlossEntry': 
            {
              'ID': 'SGML',
              'ItemNumber': 2,          
              'SortAs': 'SGML',
              'GlossTerm': 'Standard Generalized Markup Language',
              'Acronym': 'SGML',
              'Abbrev': 'ISO 8879:1986',
              'GlossDef': 
              {
                'para': 'A meta-markup language, used to create markup languages such as DocBook.',
                'GlossSeeAlso': ['GML', 'XML']
              },
              'GlossSee': 'markup'
            }
          }
        }
    }
  }

  ";

  var d = new JsonDeserializer(json);
  d.GetString("glossary.title").Dump();
  d.GetString("glossary.GlossDiv.title").Dump();  
  d.GetString("glossary.GlossDiv.GlossList.GlossEntry.ID").Dump();  
  d.GetInt("glossary.GlossDiv.GlossList.GlossEntry.ItemNumber").Dump();    
  d.GetObject("glossary.GlossDiv.GlossList.GlossEntry.GlossDef").Dump();   
  d.GetObject("glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso").Dump(); 
  d.GetObject("Some Path That Doesnt Exist.Or.Another").Dump();   
}

// Define other methods and classes here

public class JsonDeserializer
{
  private IDictionary jsonData { get; set; }

  public JsonDeserializer(string json)
  {
    var json_serializer = new JavaScriptSerializer();

    jsonData = (IDictionary)json_serializer.DeserializeObject(json);
  }

  public string GetString(string path)
  {
    return (string) GetObject(path);
  }

  public int? GetInt(string path)
  {
    int? result = null;

    object o = GetObject(path);
    if (o == null)
    {
      return result;
    }

    if (o is string)
    {
      result = Int32.Parse((string)o);
    }
    else
    {
      result = (Int32) o;
    }

    return result;
  }

  public object GetObject(string path)
  {
    object result = null;

    var curr = jsonData;
    var paths = path.Split('.');
    var pathCount = paths.Count();

    try
    {
      for (int i = 0; i < pathCount; i++)
      {
        var key = paths[i];
        if (i == (pathCount - 1))
        {
          result = curr[key];
        }
        else
        {
          curr = (IDictionary)curr[key];
        }
      }
    }
    catch
    {
      // Probably means an invalid path (ie object doesn't exist)
    }

    return result;
  }
}
해설 (0)

뉴턴소프t.j슨 라이브러리를 사용하여 사용자의 요구에 쉽게 수행할 수 있습니다. 나는 한 가지 예는 먹어서나 다운되어도 투명지에 들여다 볼 수 있습니다.

  • Class 를 receive:* 객체의 유형
public class User
{
    public int ID { get; set; }
    public string Name { get; set; }

}
  • 번호:*
static void Main(string[] args)
{

      string json = "{\"ID\": 1, \"Name\": \"Abdullah\"}";

      User user = JsonConvert.DeserializeObject(json);

      Console.ReadKey();
}

이것은 매우 간단한 방법은 구문 분석 너회의 json.

해설 (0)

Tripletdad99 있다 "고 말했다

var result = JsonConvert.DeserializeObject(json);

그러나 don& 만들 경우, 추가 객체에는 t # 39 을 (를) '대신' 사전을 만들 수 있습니다

var result = JsonConvert.DeserializeObject(json_serializer);
해설 (0)

이 프로젝트에 대한 추가 ddl 참조. 시스템.웹스엑스텐시온s.들러

이 이름공간은 사용합니다. , 시스템.웹스스크리pt.즈리얼리제이션 사용하여

public class IdName
{
    public int Id { get; set; }
    public string Name { get; set; }
}

   string jsonStringSingle = "{'Id': 1, 'Name':'Thulasi Ram.S'}".Replace("'", "\"");
   var entity = new JavaScriptSerializer().Deserialize(jsonStringSingle);

   string jsonStringCollection = "[{'Id': 2, 'Name':'Thulasi Ram.S'},{'Id': 2, 'Name':'Raja Ram.S'},{'Id': 3, 'Name':'Ram.S'}]".Replace("'", "\"");
   var collection = new JavaScriptSerializer().Deserialize(jsonStringCollection);
해설 (0)

Json 의 복제본에 json2csharp 를 클릭하면 해당 붙여넣거나 dell. 텍스트 발령합니다 버튼를.

A 생성되는 클래스를 사용하는 파일 아래와 같이 cs (cs)

var generatedcsResponce = JsonConvert.DeserializeObject(yourJson);

여기서 생성된 , 파일 이름을 '는' 루도비치 cs

해설 (0)

이러한 단계를 다른 쉽고 빠르게 반 자동화 할 수 있다.

  1. 시행하십시오 JSON 운영까지도 구문 분석 및 붙이십시오 있습니다. 그 결과 복사하여 붙여넣습니다 (http://json2csharp.com/) 를 새로운 클래스 (예: 비주얼 스튜디오에서 myclass).
  2. &Quot 변경하십시오 RootObject"; 수 있는 json2csharp 출력입니다 &quot MyClass"; 또는 너희에게 라고도 했다.
  3. 비주얼 스튜디오에서 gnu. orghttp://www. 웹 사이트인 &gt. 패키지 관리 및 사용 누제 충스러웠으니 뉴턴소프트 이종오네 추가할 수 있습니다.

지금 같은 코드를 사용하는:

WebClient client = new WebClient();

string myJSON = client.DownloadString("https://URL_FOR_JSON.com/JSON_STUFF");

var myClass = Newtonsoft.Json.JsonConvert.DeserializeObject(myJSON);
해설 (0)

다음과 같은 라이브러리란 포함시키십시오 먼저 봐야 합니다.

using System.Runtime.Serialization.Json;

DataContractJsonSerializer desc = new DataContractJsonSerializer(typeof(BlogSite));
string json = "{\"Description\":\"Share knowledge\",\"Name\":\"zahid\"}";

using (var ms = new MemoryStream(ASCIIEncoding.ASCII.GetBytes(json)))
{
    BlogSite b = (BlogSite)desc.ReadObject(ms);
    Console.WriteLine(b.Name);
    Console.WriteLine(b.Description);
}
해설 (0)

C # 의 객체를 JSON 으로 변환할 문자열을. 아래 사용하는 테스트 케이스. 그 날 위해 일했다. , 여기서 &quot MenuInfo*&quo. c # 은 내 클래스 개체.

JsonTextReader reader = null;
try
{
    WebClient webClient = new WebClient();
    JObject result = JObject.Parse(webClient.DownloadString("YOUR URL"));
    reader = new JsonTextReader(new System.IO.StringReader(result.ToString()));
    reader.SupportMultipleContent = true;
}
catch(Exception)
{}

JsonSerializer serializer = new JsonSerializer();
MenuInfo menuInfo = serializer.Deserialize(reader);
해설 (0)