code java correspondant à Newtonsoft.Json.JsonConvert.SerializeObject(source de l'Objet,Newtonsoft.Json.JsonSerializerSettings()) in.net?

j'ai un code dans .net qui sérialise une requête au format json ... Le code est quelque chose comme cela.

  var ops = new Newtonsoft.Json.JsonSerializerSettings();
  ops.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
  ops.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
  ops.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore;
  ops.Converters.Add(new Newtonsoft.Json.Converters.JavaScriptDateTimeConverter());

  String strSO = Newtonsoft.Json.JsonConvert.SerializeObject(source,
  bIndent ? Newtonsoft.Json.Formatting.Indented : Newtonsoft.Json.Formatting.None,
  ops);

j'ai essayé le code java correspondant à cette partie, mais il ne fonctionne pas.

1
demandé sur IEatBagels 2011-04-11 17:29:22

2 réponses

D'après ce que j'ai compris, le sérialiseur Newtonsoft prend un objet avec des variables membres et affiche une chaîne json qui représente cet objet.

donc vous pouvez faire quelque chose comme:

Product product = new Product();

product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };

string output = JsonConvert.SerializeObject(product);

et vous obtiendrez une chaîne de sortie comme:

{"Name": "Apple",
"Expiry": "\/Date(1230375600000+1300)\/",
"Price": 3.99,
"Sizes": ["Small", "Medium", "Large"]
}

maintenant la mauvaise nouvelle est que la bibliothèque BlackBerry que vous utilisez n'utilise pas la réflexion pour examiner la structure des objets qu'elle sérialise. Il est un formateur plutôt qu'un sérialiseur.

La bonne nouvelle, c'est qu'il est assez facile à utiliser. La documentation est ici:

http://www.blackberry.com/developers/docs/6.0.0api/org/json/me/package-summary.html

en bref, pour écrire un objet tel que celui ci-dessus, vous feriez quelque chose comme:

 myString = new JSONStringer()
 .object()
     .key("Name")
     .value("Apple")
     .key("Expiry")
     .value("Date("+myDate.getTime()+")")
 .endObject()
 .toString();

..et ainsi de suite. Notez que vous construisez L'élément structure JSON par element, plutôt que de laisser la bibliothèque JSON supposer que votre objet est la structure exacte des données que vous souhaitez afficher.

espérons que cela vous donnera une idée de la façon de procéder.

3
répondu AndyT 2011-04-12 08:44:40

Si votre question est "est-ce que quelqu'un sait de une Java équivalent à Newtonsoft.Json .NET pour la sérialisation au format JSON?"

Vérifier le bas de http://json.org

0
répondu Jim Blackler 2017-09-06 23:28:34