json数据为空什么意思?json数据如何解析?

JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,是大家在开发中经常用到的工具,不过有些朋友在使用的过程中出现json数据为空,这是什么意思呢?下面来我们就来给大家讲解一下。

这是编码转译的问题,html_entity_decode() 函数的作用是把 HTML 实体转换为字符。stripslashes() 函数的作用是删除反斜杠。而转译错误就会使json数据为空。

json数据如何解析?

一、JSON解析之传统的JSON解析

1、生成json字符串

public static String createJsonString(String key, Object value)
{
    JSONObject jsonObject = new JSONObject();
    jsonObject.put(key, value);
    return jsonObject.toString();
}

2、解析JSON字符串

分为以下三种情况,一个JavaBean,一个List数组,一个嵌套Map的List数组:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import com.android.myjson.domain.Person;
/**
* 完成对json数据的解析
*
*/
public class JsonTools
{
    public static Person getPerson(String key, String jsonString)
        {
            Person person = new Person();
            try
            {
                JSONObject jsonObject = new JSONObject(jsonString);
                JSONObject personObject = jsonObject.getJSONObject("person");
                person.setId(personObject.getInt("id"));
                person.setName(personObject.getString("name"));
                person.setAddress(personObject.getString("address"));
            }
            catch (Exception e)
            {
                // TODO: handle exception }
                return person;
            }
            public static List getPersons(String key, String jsonString)
                {
                    List list = new ArrayList();
                    try
                    {
                        JSONObject jsonObject = new JSONObject(jsonString);
                        // 返回json的数组
                        JSONArray jsonArray = jsonObject.getJSONArray(key);
                        for (int i = 0; i < jsonArray.length(); i++)
                        {
                            JSONObject jsonObject2 = jsonArray.getJSONObject(i);
                            Person person = new Person();
                            person.setId(jsonObject2.getInt("id"));
                            person.setName(jsonObject2.getString("name"));
                            person.setAddress(jsonObject2.getString("address"));
                            list.add(person);
                        }
                    }
                    catch (Exception e)
                    {
                        // TODO: handle exception }
                        return list;
                    }
                    public static List getList(String key, String jsonString)
                        {
                            List list = new ArrayList();
                            try
                            {
                                JSONObject jsonObject = new JSONObject(jsonString);
                                JSONArray jsonArray = jsonObject.getJSONArray(key);
                                for (int i = 0; i < jsonArray.length(); i++)
                                {
                                    String msg = jsonArray.getString(i);
                                    list.add(msg);
                                }
                            }
                            catch (Exception e)
                            {
                                // TODO: handle exception }
                                return list;
                            }
                            public static List > listKeyMaps(String key
                                , String jsonString)
                            {
                                List > list = new ArrayList > ();
                                try
                                {
                                    JSONObject jsonObject = new JSONObject(jsonString);
                                    JSONArray jsonArray = jsonObject.getJSONArray(key);
                                    for (int i = 0; i < jsonArray.length(); i++)
                                    {
                                        JSONObject jsonObject2 = jsonArray.getJSONObject(i);
                                        Map map = new HashMap();
                                        Iterator iterator = jsonObject2.keys();
                                        while (iterator.hasNext())
                                        {
                                            String json_key = iterator.next();
                                            Object json_value = jsonObject2.get(json_key);
                                            if (json_value == null)
                                            {
                                                json_value = "";
                                            }
                                            map.put(json_key, json_value);
                                        }
                                        list.add(map);
                                    }
                                }
                                catch (Exception e)
                                {
                                    // TODO: handle exception }
                                    return list;
                                }
                            }

二、JSON解析之GSON

1、生成JSON字符串

import com.google.gson.Gson;
public class JsonUtils
{
    public static String createJsonObject(Object obj)
    {
        Gson gson = new Gson();
        String str = gson.toJson(obj);
        return str;
    }
}

2、解析JSON

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;;
public class GsonTools
{
    public GsonTools()
        {
            // TODO Auto-generated constructor stub }
            /**
            * @param
            * @param jsonString
            * @param cls
            * @return
            */
            public static T getPerson(String jsonString, Class cls)
                {
                    T t = null;
                    try
                    {
                        Gson gson = new Gson();
                        t = gson.fromJson(jsonString, cls);
                    }
                    catch (Exception e)
                    {
                        // TODO: handle exception }
                        return t;
                    }
                    /**
                    * 使用Gson进行解析 List
                    *
                    * @param
                    * @param jsonString
                    * @param cls
                    * @return
                    */
                    public static List getPersons(String jsonString, Class cls)
                    {
                        List list = new ArrayList();
                        try
                        {
                            Gson gson = new Gson();
                            list = gson.fromJson(jsonString, new TypeToken > ()
                            {}.getType());
                        }
                        catch (Exception e)
                        {}
                        return list;
                    }
                    /**
                    * @param jsonString
                    * @return
                    */
                    public static List getList(String jsonString)
                        {
                            List list = new ArrayList();
                            try
                            {
                                Gson gson = new Gson();
                                list = gson.fromJson(jsonString, new TypeToken > ()
                                {}.getType());
                            }
                            catch (Exception e)
                            {
                                // TODO: handle exception }
                                return list;
                            }
                            public static List > listKeyMaps(String jsonString)
                            {
                                List > list = new ArrayList > ();
                                try
                                {
                                    Gson gson = new Gson();
                                    list = gson.fromJson(jsonString
                                        , new TypeToken >> ()
                                        {}.getType());
                                }
                                catch (Exception e)
                                {
                                    // TODO: handle exception }
                                    return list;
                                }
                            }

三、JSON解析之FastJSON

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
public class JsonTool
{
    public static T getPerson(String jsonstring, Class cls)
        {
            T t = null;
            try
            {
                t = JSON.parseObject(jsonstring, cls);
            }
            catch (Exception e)
            {
                // TODO: handle exception }
                return t;
            }
            public static List getPersonList(String jsonstring, Class cls)
                {
                    List list = new ArrayList();
                    try
                    {
                        list = JSON.parseArray(jsonstring, cls);
                    }
                    catch (Exception e)
                    {
                        // TODO: handle exception }
                        return list;
                    }
                    public static List > getPersonListMap1(
                        String jsonstring)
                    {
                        List > list = new ArrayList > ();
                        try
                        {
                            list = JSON.parseObject(jsonstring
                                , new TypeReference >> ()
                                {}.getType());
                        }
                        catch (Exception e)
                        {
                            // TODO: handle exception }
                            return list;
                        }
                    }

Json解析是java中最基本的技能,作为java人员,我们一定要学会json解析,才能使用好接送,另外如果json数据为空的话,肯定是解析数据有误,建议大家好好检查一下!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

java开发工程师面试题有哪些?java开发工程师面试题及答案

我的世界java版在哪里买?如何下载安装?

java终止程序语句怎么写?Java语句有哪些?