newtonsoft jtoken jobject example create c# asp.net json.net

c# - jtoken - Cómo agregar el objeto Jarray en JObject



newtonsoft json documentation (1)

¿Cómo agregar JArray en JObject ? jarrayObj una excepción al cambiar el jarrayObj en JObject .

parameterNames = "Test1,Test2,Test3"; JArray jarrayObj = new JArray(); foreach (string parameterName in parameterNames) { jarrayObj.Add(parameterName); } JObject ObjDelParams = new JObject(); ObjDelParams["_delete"] = jarrayObj; JObject UpdateAccProfile = new JObject( ObjDelParams, new JProperty("birthday", txtBday), new JProperty("email", txtemail))

Necesito salida en esta forma:

{ "_delete": ["Test1","Test2","Test3"], "birthday":"2011-05-06", "email":"[email protected]" }


Veo dos problemas con su código cuando lo publicó.

  1. parameterNames necesita ser una matriz de cadenas, no solo una cadena con comas.
  2. No puede agregar un JArray directamente a JObject ; tienes que ponerlo en JProperty y agregarlo a JObject , tal como lo haces con las propiedades de "cumpleaños" y "correo electrónico".

Código corregido:

string[] parameterNames = new string[] { "Test1", "Test2", "Test3" }; JArray jarrayObj = new JArray(); foreach (string parameterName in parameterNames) { jarrayObj.Add(parameterName); } string txtBday = "2011-05-06"; string txtemail = "[email protected]"; JObject UpdateAccProfile = new JObject( new JProperty("_delete", jarrayObj), new JProperty("birthday", txtBday), new JProperty("email", txtemail)); Console.WriteLine(UpdateAccProfile.ToString());

Salida:

{ "_delete": [ "Test1", "Test2", "Test3" ], "birthday": "2011-05-06", "email": "[email protected]" }

Además, para referencia futura, si obtiene una excepción en su código, es útil que diga en su pregunta cuál es la excepción, para que no tengamos que adivinar. Nos facilita ayudarlo.