1 介绍
导包 maven
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
安卓Gradle
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.8'
2 json数据
{
"errorCode":200,
"errorMsg":"success",
"data":[
{
"name":"charles",
"age":20
},
{
"name":"tom",
"age":21
}
]
}
3 解析json
3.1 bean
package gson;
import java.util.List;
public class UserBean {
private int errorCode;
private String errorMsg;
private List<DataBean> data;
public int getErrorCode() {
return errorCode;
}
public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
}
3.2 主方法
package gson;
import com.google.gson.Gson;
import java.util.List;
public class gson {
public static void main(String[] args) {
List<UserBean.DataBean> data;
int errorCode = 0;
String errorMsg = null;
String userData = "{\n" +
" \"errorCode\":200,\n" +
" \"errorMsg\":\"success\",\n" +
" \"data\":[\n" +
" {\n" +
" \"name\":\"charles\",\n" +
" \"age\":20\n" +
" },\n" +
" {\n" +
" \"name\":\"tom\",\n" +
" \"age\":21\n" +
" }\n" +
" ]\n" +
"}";
Gson gson = new Gson();
UserBean userBean = gson.fromJson(userData, UserBean.class);
errorCode = userBean.getErrorCode();
errorMsg = userBean.getErrorMsg();
data = userBean.getData();
System.out.println(errorCode);
System.out.println(errorMsg);
System.out.println(data.get(0).getName());
System.out.println(data.size());
for(int i = 0;i<data.size();i++){
System.out.println("--------");
System.out.println(data.get(i).getName());
System.out.println(data.get(i).getAge());
System.out.println("--------");
}
}
}
输出

<h2><a id="1__0"></a>1 介绍</h2>
<p>导包 maven</p>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-comment"><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>com.google.code.gson<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>gson<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>2.8.8<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
</code></div></pre>
<p>安卓Gradle</p>
<pre><div class="hljs"><code class="lang-shell">// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.8'
</code></div></pre>
<h2><a id="2_json_17"></a>2 json数据</h2>
<pre><div class="hljs"><code class="lang-json"><span class="hljs-punctuation">{</span>
<span class="hljs-attr">"errorCode"</span><span class="hljs-punctuation">:</span><span class="hljs-number">200</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"errorMsg"</span><span class="hljs-punctuation">:</span><span class="hljs-string">"success"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"data"</span><span class="hljs-punctuation">:</span><span class="hljs-punctuation">[</span>
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span><span class="hljs-string">"charles"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"age"</span><span class="hljs-punctuation">:</span><span class="hljs-number">20</span>
<span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span>
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span><span class="hljs-string">"tom"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"age"</span><span class="hljs-punctuation">:</span><span class="hljs-number">21</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">]</span>
<span class="hljs-punctuation">}</span>
</code></div></pre>
<h2><a id="3_json_35"></a>3 解析json</h2>
<h3><a id="31_bean_36"></a>3.1 bean</h3>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">package</span> gson;
<span class="hljs-keyword">import</span> java.util.List;
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">UserBean</span> {
<span class="hljs-keyword">private</span> <span class="hljs-type">int</span> errorCode;
<span class="hljs-keyword">private</span> String errorMsg;
<span class="hljs-keyword">private</span> List<DataBean> data;
<span class="hljs-keyword">public</span> <span class="hljs-type">int</span> <span class="hljs-title function_">getErrorCode</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> errorCode;
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">setErrorCode</span><span class="hljs-params">(<span class="hljs-type">int</span> errorCode)</span> {
<span class="hljs-built_in">this</span>.errorCode = errorCode;
}
<span class="hljs-keyword">public</span> String <span class="hljs-title function_">getErrorMsg</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> errorMsg;
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">setErrorMsg</span><span class="hljs-params">(String errorMsg)</span> {
<span class="hljs-built_in">this</span>.errorMsg = errorMsg;
}
<span class="hljs-keyword">public</span> List<DataBean> <span class="hljs-title function_">getData</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> data;
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">setData</span><span class="hljs-params">(List<DataBean> data)</span> {
<span class="hljs-built_in">this</span>.data = data;
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">DataBean</span> {
<span class="hljs-keyword">private</span> String name;
<span class="hljs-keyword">private</span> String age;
<span class="hljs-keyword">public</span> String <span class="hljs-title function_">getName</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> name;
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">setName</span><span class="hljs-params">(String name)</span> {
<span class="hljs-built_in">this</span>.name = name;
}
<span class="hljs-keyword">public</span> String <span class="hljs-title function_">getAge</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> age;
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">setAge</span><span class="hljs-params">(String age)</span> {
<span class="hljs-built_in">this</span>.age = age;
}
}
}
</code></div></pre>
<h3><a id="32__94"></a>3.2 主方法</h3>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">package</span> gson;
<span class="hljs-keyword">import</span> com.google.gson.Gson;
<span class="hljs-keyword">import</span> java.util.List;
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">gson</span> {
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">main</span><span class="hljs-params">(String[] args)</span> {
List<UserBean.DataBean> data;
<span class="hljs-type">int</span> <span class="hljs-variable">errorCode</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span>;
<span class="hljs-type">String</span> <span class="hljs-variable">errorMsg</span> <span class="hljs-operator">=</span> <span class="hljs-literal">null</span>;
<span class="hljs-type">String</span> <span class="hljs-variable">userData</span> <span class="hljs-operator">=</span> <span class="hljs-string">"{\n"</span> +
<span class="hljs-string">" \"errorCode\":200,\n"</span> +
<span class="hljs-string">" \"errorMsg\":\"success\",\n"</span> +
<span class="hljs-string">" \"data\":[\n"</span> +
<span class="hljs-string">" {\n"</span> +
<span class="hljs-string">" \"name\":\"charles\",\n"</span> +
<span class="hljs-string">" \"age\":20\n"</span> +
<span class="hljs-string">" },\n"</span> +
<span class="hljs-string">" {\n"</span> +
<span class="hljs-string">" \"name\":\"tom\",\n"</span> +
<span class="hljs-string">" \"age\":21\n"</span> +
<span class="hljs-string">" }\n"</span> +
<span class="hljs-string">" ]\n"</span> +
<span class="hljs-string">"}"</span>;
<span class="hljs-type">Gson</span> <span class="hljs-variable">gson</span> <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">Gson</span>();
<span class="hljs-comment">// json 反序列化</span>
<span class="hljs-type">UserBean</span> <span class="hljs-variable">userBean</span> <span class="hljs-operator">=</span> gson.fromJson(userData, UserBean.class);
<span class="hljs-comment">// 获取错误码</span>
errorCode = userBean.getErrorCode();
<span class="hljs-comment">// 获取错误信息</span>
errorMsg = userBean.getErrorMsg();
<span class="hljs-comment">// 获取人员信息</span>
data = userBean.getData();
System.out.println(errorCode);
System.out.println(errorMsg);
System.out.println(data.get(<span class="hljs-number">0</span>).getName());
System.out.println(data.size());
<span class="hljs-keyword">for</span>(<span class="hljs-type">int</span> <span class="hljs-variable">i</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span>;i<data.size();i++){
System.out.println(<span class="hljs-string">"--------"</span>);
System.out.println(data.get(i).getName());
System.out.println(data.get(i).getAge());
System.out.println(<span class="hljs-string">"--------"</span>);
}
}
}
</code></div></pre>
<p>输出<br />
<img src="https://static.couragesteak.com/article/672ec92d30dbf02ffdb051eef799e8e8.png" alt="Gson案例输出" /></p>
留言