web-dev-qa-db-fra.com

Générer un objet JSON avec NewtonSoft en une seule ligne

J'utilise la bibliothèque JSON NewtonSoft pour générer une chaîne JSON:

JObject out = JObject.FromObject(new
            {
                typ = "photos"
            });

            return out.ToString();

Sortie:

{
  "typ": "photos"
}

Ma question: Est-il possible d’obtenir la sortie sur une seule ligne comme:

{"typ": "photos"}
48
Calimero

Vous pouvez utiliser la surcharge de JObject.ToString() qui prend Formatting en tant que paramètre:

JObject obj = JObject.FromObject(new
{
    typ = "photos"
});

return obj.ToString(Formatting.None);
70
tpeczek
var json = JsonConvert.SerializeObject(new { typ = "photos" }, Formatting.None);
48
L.B

Voici un one-liner pour minify JSON pour lequel vous ne disposez que d'une chaîne:

var myJson = "{\"type\"    :\"photos\"               }";
JObject.Parse(myJson).ToString(Newtonsoft.Json.Formatting.None)

Sortie:

{"type":"photos"}
2
DLeh

Je ne sais pas si c'est ce que vous voulez dire, mais ce que je fais, c'est ceci:

string postData = "{\"typ\":\"photos\"}";

EDIT: Après avoir cherché, j'ai trouvé this sur Json.Net:

string json = @"{
  CPU: 'Intel',
  Drives: [
    'DVD read/writer',
    '500 gigabyte hard drive'
  ]
}";

JObject o = JObject.Parse(json);

et peut-être que vous pourriez utiliser les informations sur this website.

Mais je ne suis pas sûr que la sortie soit sur une seule ligne ... Bonne chance!

1
Quispie

Si quelqu'un ici ne veut pas utiliser de bibliothèque externe dans MVC, il peut utiliser le System.Web.Script.Serialization.JavaScriptSerializer intégré 

Une ligne pour cela sera:

var JsonString = new JavaScriptSerializer().Serialize(new { typ = "photos" });
0
Anup Sharma