我最近开始玩JSON字符串,并被告知谷歌自己的库Gson,是处理这些的新的和时髦的方式.
我理解它的方式是JSON字符串本质上是一个地图.每个变量指向字符串中的值.
例如:
String jsonInput2 = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\"}
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好.JSON创建此字符串时的信息可以使用以下代码分配给变量:
Gson gson = new Gson();
Map<String, String> map = new HashMap<String, String>();
map = (Map<String, String>) gson.fromJson(jsonInput, map.getClass());
String createdAt = map.get("created_at");
Run Code Online (Sandbox Code Playgroud)
它在简约之美中几乎是艺术性的.但这就是美丽结束的地方,我的困惑开始了.
以下是上述JSON字符串的扩展名;
String jsonInput2 = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\",\"user\":{\"id_str\":\"366301747\",\"name\":\"somethingClever\",\"screen_name\":\"somethingCoolAndClever\"}}";
Run Code Online (Sandbox Code Playgroud)
我的问题是这些"括号内的括号"如何适用于该user部分JSON?
如何将这些内括号中指定的值分配给变量?
任何人都可以向我解释,或者在代码中向我展示如何Gson处理这样的东西,以及我如何使用它?
简而言之,为什么......
String jsonInput = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\",\"user\":{\"id_str\":\"366301747\",\"name\":\"somethingClever\",\"screen_name\":\"somethingCoolAndClever\"}}";
Gson gson = new Gson(); …Run Code Online (Sandbox Code Playgroud)