简体   繁体   English

如何将JSON字符串转换为GSON对象?

[英]How do I convert a JSON String into a GSON Object?

I'm going to develop a webservice and its input should be described in JSON which i want to use in my inner logic as a GSON Object. 我将开发一个web服务,它的输入应该用JSON描述,我希望在我的内部逻辑中用作GSON对象。 So whoever uses the webservice will send a request with some infmorations like this: 因此,无论谁使用Web服务,都会发送一些请求,其中包含以下信息:

{
"glossary": {
    "title": "example glossary",
    "GlossDiv": {
        "title": "S",
        "GlossList": {
            "GlossEntry": {
                "ID": "SGML",
                "SortAs": "SGML",
                "GlossTerm": "Standard Generalized Markup Language",
                "Acronym": "SGML",
                "Abbrev": "ISO 8879:1986",
                "GlossDef": {
                    "para": "A meta-markup language, used to create markup languages such as DocBook.",
                    "GlossSeeAlso": ["GML", "XML"]
                },
                "GlossSee": "markup"
            }
        }
    }
 }
}

What i need now is something to handle it. 我现在需要的是处理它的东西。 Something like the following: (it's just an example how i imagine the following steps to get it run ;) ) 类似于以下内容:(这只是一个例子,我想象以下步骤让它运行;))

public class AnyClass{

    public AnyClass(String jsonString){
        GSONObject gobject = new GSONObject(jsonString);
        String title = gobject.getValueOf("title");
    }
}

Thanks for every help :) 谢谢你的每一个帮助:)

Try this 尝试这个

JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(jsonString);

Using gson 用gson

Gson gson = new Gson();
gson.fromJson(jsonString, YourBean.class);

You can use javax.json package for processing json data. 您可以使用javax.json包来处理json数据。 For details see https://docs.oracle.com/javaee/7/tutorial/jsonp002.htm 有关详细信息,请参阅https://docs.oracle.com/javaee/7/tutorial/jsonp002.htm

To convert json string to Gson (Deserialization) 将json字符串转换为Gson(反序列化)

Use gson.fromJson(); 使用gson.fromJson();

Example using String class 使用String类的示例

Gson gson = new Gson();
String str = gson.fromJson("\"abc\"", String.class);

Example using user defined class 使用用户定义的类的示例

BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);

The google help page for Gson has good explanations. Gson的谷歌帮助页面有很好的解释。

https://sites.google.com/site/gson/gson-user-guide#TOC-Primitives-Examples https://sites.google.com/site/gson/gson-user-guide#TOC-Primitives-Examples

Object Example 对象示例

class BagOfPrimitives {
  private int value1 = 1;
  private String value2 = "abc";
  private transient int value3 = 3;
  BagOfPrimitives() {
    // no-args constructor
  }
}

(Serialization) (串行化)

BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);  
==> json is {"value1":1,"value2":"abc"}

Note that you can not serialize objects with circular references since that will result in infinite recursion. 请注意,您无法使用循环引用序列化对象,因为这将导致无限递归。

(Deserialization) (反序列化)

BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);   
==> obj2 is just like obj

Finer Points with Objects 更精细的对象点

It is perfectly fine (and recommended) to use private fields 
There is no need to use any annotations to indicate a field is to be included for serialization and deserialization. All fields in the current class (and from all super classes) are included by default. 
If a field is marked transient, (by default) it is ignored and not included in the JSON serialization or deserialization.

This implementation handles nulls correctly

While serialization, a null field is skipped from the output

While deserialization, a missing entry in JSON results in setting the corresponding field in the object to null

If a field is synthetic, it is ignored and not included in JSON serialization or deserialization

Fields corresponding to the outer classes in  inner classes, anonymous classes, and local classes are ignored and not included in serialization or deserialization

If you need more examples please look at the below links 如果您需要更多示例,请查看以下链接

http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/ http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

http://filotechnologia.blogspot.it/2013/09/convert-java-object-from-json-gson-api.html http://filotechnologia.blogspot.it/2013/09/convert-java-object-from-json-gson-api.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM