2016-08-17 6 views
-3

に私は応答で、次のJSONを受けていますデシリアライズJSONオブジェクト

{ 
    "CreateCustomerResponse": { 
    "ServiceContextType": { 
     "Status": { 
     "MessageType": "SUCCESS", 
     "Message": "Wow! You qualified" 
     } 
    } 
    } 
} 

私はそれをdeserializeMessageと再びserializeそれをの値を操作したいです。これどうやってするの?その愚かな質問なら私を許してください。しかし私は初心者です。私はjsonについて多くの知識を持っていません。 私はこの試みた:

List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(responseString); 

をしかし、例外が発生しました:

{ "(名\:値\"} "\" 現在のJSONオブジェクトなど {\)をデシリアライズできない" タイプ へ'型はJSON配列(例:[1,2,3])が正しくデシリアライズする必要があるため、' System.Collections.Generic.List`1 [InfluxDB.Serie] 'と表示されます。\ r \ n にこのエラーを修正するか、JSON JSON配列(例:[1,2,3]) に変更するか、またはデシリアライズされた型を通常の.NET型に変更します(例: 整数のようなプリミティブ型ではなく、配列のようなコレクション型ではありません( またはList)。これはJSONオブジェクトからデシリアライズできます。 JsonObjectAttributeもJSONオブジェクトから デシリアライズにそれを強制するタイプに追加することができます。\ rを\ NPATH「結果」、2行目、位置 12 "}

+2

JSONをデシリアライズする方法を理解しようとしましたか?文字通り何千もの質問がここにあります。 – DavidG

+1

編集に関しては、このJSONを 'List 'にデシリアライズすると思いますか? – DavidG

答えて

1

あなたは感謝(のようなものを使用する必要があります

public class Status 
{ 
    public string messageType { get; set; } 
    public string message { get; set; } 
} 

public class ServiceContextType 
{ 
    public Status status { get; set; } 
} 

public class CreateCustomerResponse 
{ 
    public ServiceContextType serviceContextType { get; set; } 
} 

public class RootObject 
{ 
    public CreateCustomerResponse createCustomerResponse { get; set; } 
} 

次に、あなたが行うことができます:)JsonToC#

List<RootObject> data = JsonConvert.DeserializeObject<List<RootObject>>(responseString); 
+0

JsonToC#はPascalCaseのプロパティ名を出力します..? – stuartd

+0

タイプ名は元のjsonとまったく同じです。私は、プロパティ名(タイプではない)を変更して、最初の文字を低くして、それが正しくstackoverflowで色付けされるようにしました。 – Mulflar

0

あなたはそれを殺菌するために、これらのモデルクラスを使用することができます

public class CustomerResponse 
{ 
public string CreateCustomerResponse {get;set;} 
public CustomContext ServiceContextType {get;set;} 
} 

public class CustomContext 
{ 
public CustomStatus Status{get;set;} 
} 

public class CustomStatus 
{ 
public string Message{get;set;} 
public string MessageType{get;set;} 
} 
関連する問題