2017-08-18 10 views
-1

完全に逆シリアル化したくないJSON文字列があります。私は、JSON文字列内のコンテンツを逆シリアル化したいだけです。私は、コンテンツオブジェクトが必要デシリアライズするJSON文字列の一部を分割する

"{\"content\":{\"token\":\"*************************\",\"is_verified\":1,\"account_id\":45087,\"is_starter\":0,\"days_left\":1},\"status\":200,\"id\":\"test\",\"method\":\"accounts_login\"}" 

これは文字列は次のように見ることができる方法です。だから、この文字列を作ることができるRegex(?)を作る必要があります:

"{\"token\":\"*************************\",\"is_verified\":1,\"account_id\":45087,\"is_starter\":0,\"days_left\":1}" 

これを行うにはどうすればよいでしょうか?

+1

全体のことをデシリアライズして、ちょうどあなたが必要な部品を使用することです最善の方法。 – crashmstr

+0

Newtonsoft.Jsonを使用してすべてをデシリアライズし、必要なものだけを使用するのはなぜですか? – Rafael

答えて

0

あなたは私の意見から

var json = "{\'content\':{\'token\':\'*************************\',\'is_verified\':1,\'account_id\':45087,\'is_starter\':0,\'days_left\':1},\'status\':200,\'id\':\'test\',\'method\':\'accounts_login\'}"; 

var jToken = JToken.Parse(json); 
var contentToken = jToken["content"]; //This selects the Json-Node 
var content = contentToken.ToObject<YourContentClass>(); 
0

ような単純なようNewtonsoft.Jsonでこれを行うことができ、最善のアプローチは、データ・レイヤ・レベルで全体のJSON文字列をデシリアライズすることです。また、オブジェクトにデシリアライズした後、必要なデータを別のレイヤーのオブジェクトから選択します。ビジネスレイヤー。このトピックで説明されてどのようにオブジェクトをJSON文字列をデシリアライズする

Deserialize JSON with C#

public class Rootobject 
    { 
     public Content content { get; set; } 
     public int status { get; set; } 
     public string id { get; set; } 
     public string method { get; set; } 
    } 

    public class Content 
    { 
     public string token { get; set; } 
     public int is_verified { get; set; } 
     public int account_id { get; set; } 
     public int is_starter { get; set; } 
     public int days_left { get; set; } 
    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      string json = 
       "{\"content\":{\"token\":\"*************************\",\"is_verified\":1,\"account_id\":45087,\"is_starter\":0,\"days_left\":1},\"status\":200,\"id\":\"test\",\"method\":\"accounts_login\"}"; 

      Rootobject rootobject = new JavaScriptSerializer().Deserialize<Rootobject>(json); 

      Content content = rootobject.content; // Select what you need 

      System.Console.ReadKey(); 
     } 
    } 
関連する問題