2016-04-14 9 views
1

json.netを使用して、私のデータテーブルのシリアル化されたバージョンであるjson文字列を作成し、それをデータテーブルに逆シリアル化することができました。のは、私のシリアル化されたテキストは次のようになりましょう:Json.netを使用してJSONに項目を追加する

[{ username: "alan", firstName: "Alan", lastName: "Johnson", email: "[email protected]" }, 
{ username: "allison", firstName: "Allison", lastName: "House", email: "[email protected]" }, 
{ username: "ryan", firstName: "Ryan", lastName: "Carson", email: "[email protected]" } ] 

私は何をしたいのですがJSONテキストに含まれます、[、または後に最後まで]前に先頭にテキストを追加することですデシリアライゼーションをデータテーブルに戻すのを妨げることはありません。

私はserializeコマンドを使用しています。時にはクラスオブジェクトをシリアル化コマンドの2番目(オプション)のパラメータとして使用することもあります。 2番目の引数を使用すると、表と列の定義情報を含むより冗長なjsonが生成されます。

どちらの方法でも、jsonテキストにルックアップの成功または失敗を示すセグメントを追加したいが、デシリアライズが中断されることはない。

これを行うには、誰かがjson.netメソッドを提案できますか?

おかげで...

+0

あなたは "直列化復元を妨げない" とはどういう意味ですか。 *完全に無視される*か、読み込みと解析が可能なはずですか?テキストが完全に無視されるようにするには、[JSON標準自体](http://www.json.org/)を参照しても、Json.NET [コメントのサポート](https://stackoverflow.com/questions/10316997) ) ではない。 – dbc

+0

{"ステータス": "成功"、 "データ":[{上記のレコード1のすべてのもの}、{上記のレコード2のすべてのもの}、{上記のレコード3のすべてのもの}}}。角括弧内の情報は、シリアル化の結果です。ステータスは、成功を示すために追加するものですが、シリアル化されたデータの一部であってはなりません。ありがとう... – RMittelman

+0

さらに明確にするために、私はクライアントに応答の "ステータス"値を見て反応させたいが、 "データ"セクションの情報だけを逆シリアル化する必要がある。 BTWは、レスポンスに含まれるコメント(json.netでサポートされているように)です。受信者が見ることができますか?もしそうなら、それも働くかもしれません。ありがとう... – RMittelman

答えて

0
public class Users 
{ 
    public string username { get; set; } 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    public string email { get; set; } 
} 

dynamic usercollectionWrapper = new 
{   
    userList = new List<Users> 
    {  
     new Users() 
     { 
      username= "alan", firstName= "Alan", lastName= "Johnson", email= "[email protected]" 
     }, 
     new Users() 
     { 
      username= "allison", firstName= "Allison", lastName= "House", email= "[email protected]" 
     }, 
     new Users() 
     { 
      username= "ryan", firstName= "Ryan", lastName= "Carson", email= "[email protected]" 
     } 
    } 
}; 

var output = JsonConvert.SerializeObject(usercollectionWrapper); 

フィドル:https://dotnetfiddle.net/aAZ3Ah

更新:

public class Users 
{ 
    public string username { get; set; } 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    public string email { get; set; } 
} 

public class RootUsers 
{ 
    public string status { get; set; }   
    public List<Users> data { get; set; } 
} 

dynamic usercollectionWrapper = new 
{ 
    add = new RootUsers() 
    { 
     status = "success",   
     data = new List<Users> 
     {  
      new Users() 
      { 
       username= "alan", firstName= "Alan", lastName= "Johnson", email= "[email protected]" 
      }, 
      new Users() 
      { 
       username= "allison", firstName= "Allison", lastName= "House", email= "[email protected]" 
      }, 
      new Users() 
      { 
       username= "ryan", firstName= "Ryan", lastName= "Carson", email= "[email protected]" 
      } 
     } 
    } 
}; 

var output = JsonConvert.SerializeObject(usercollectionWrapper); 

フィドル:https://dotnetfiddle.net/Ic6M1Z

+0

提案していただきありがとうございます。jsonでは、質問を正しく句読める方法がわかりません。私はデータテーブルをシリアライズしていますので、クラス項目のリストを作成する方法がわかりません。実際のデータには含まれていない、jsonレスポンスに特別なステータスフィールドが必要です。詳細は上記の私のコメントをご覧ください。 – RMittelman

関連する問題