2017-06-01 9 views
-1

Ich versuche, mit Arrays, so etwas zu REST API-Objekt zu senden:C# REST Web Api POST Objekt mit Arrays

class MyObject 
{ 
    public string Name{get; set;} 
    public IEnumerable<RelatedObject> Related{get; set;} 
} 
class RelatedObject 
{ 
    public string Name{get;set;} 
} 

JSON-Format ist dies:

{ 
    "Name": "TestName", 
    "Related": [{ 
    "Name": "TestNameRelated1" 
    }{ 
    "Name": "TestNameRelated2" 
    }] 
} 

Es gibt Methodendeklaration

public void Post([FromBody]MyObject value) ... 

Problem ist, dass Wert immer Null ist. Ich habe versucht, die Beziehung zwischen MyObject und RelatedObject von 1: N zu 1: 1 zu ändern, ich änderte JSON Zeichenfolge und ich bekam richtig Wert. Ich nehme an, Problem ist Arrays konvertieren? Ich habe versucht, IEnumerable zu List zu ändern, aber nichts passiert und Wert war null.

Wie kann ich Array in IEnumerable konvertieren? Wie kann ich eigenen JSON Converter verwenden? Ich habe dieses Problem auf der Client-Seite gelöst, aber serverseitige Serialisierung in Objekt ist eingebaut.

Danke.

+0

zu IList IEnumerable Ändern Versuchen und – Gururaj

+0

Ausgabe ist mit ur json String .. –

+0

Ich sehe geändert IEnumerable to List, aber der Wert ist immer noch null. – Zefek

Antwort

1

Dies ist keine gültige Json, sollte es '' zwischen den Werten in json Array versuchen diese

{ 
    "Name": "TestName", 
    "Related": [{ 
    "Name": "TestNameRelated1" 
    },{ 
    "Name": "TestNameRelated2" 
    }] 
} 
+0

Was hat sich geändert? –

+0

@PatrickHofman OP fehlt ein ',' in der 'Related' Array –

+1

Das wäre ziemlich nützliche Informationen in einer Antwort, meinst du nicht? @suraj Ich hoffte, Amitay würde die Antwort verstehen, ist ziemlich unklar, im Grunde nur ein Code-Dump, der kaum nützlich ist. –