android中处理json最佳方法

在android中处理json,采用google的gson框架,gson是google开源的一个项目。只需将gson.jar导入项目中即可!暂时没找到上传附近的地方在哪里? 下面给出事例代码:

 

 

package com.achievo.vipshop.utils;

import java.lang.reflect.Type;
import java.util.LinkedList;
import android.os.Debug;
import android.util.Log;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

/**
 * JsonUtils工具类:
 * 
 * @description 采用Gson,google的一个开源项目,实现json对象的解析以及json对象跟java对象的互转
 * @author devin.hu
 */
public class JsonUtils {

    /**
     * 将java对象转换成json对象
     * @param obj
     * @return
     */
    public static String parseObj2Json(Object obj){
        if(obj==null)return null;
        Gson gson=new Gson();
        String objstr=gson.toJson(obj);
        if(Debug.isDebuggerConnected()){
            Log.i("parseObj2Json", objstr);
        }
        return objstr;
    }
    
    
    /**
     * 将java对象的属性转换成json的key
     * @param obj
     * @return
     */
    public static String parseObj2JsonOnField(Object obj){
        if(obj==null)return null;
        Gson gson=new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create();
        String objstr=gson.toJson(obj);
        if(Debug.isDebuggerConnected()){
            Log.i("parseObj2JsonOnField", objstr);
        }
        return objstr;
    }
    
    /**
     * 将json对象转换成java对象
     * @param jsonData
     * @param c
     * @return
     */
    public static Object parseJson2Obj(String jsonData, Class c) {
        if(jsonData==null)return null;
        Gson gson = new Gson();
        Object obj = gson.fromJson(jsonData, c);
        if(Debug.isDebuggerConnected()){
            Log.i("parseJson2Obj", obj.toString());
        }
        return obj;
    }

    public static <T> LinkedList<T> parseJson03(String jsonData,Class<T> c) {
        Type listType = new TypeToken<LinkedList<T>>() {}.getType();
        Gson gson = new Gson();
        LinkedList<T> list = gson.fromJson(jsonData, listType);
        
//        for (Iterator iterator = users.iterator(); iterator.hasNext();) {
//            User user = (User) iterator.next();
//            System.out.println("name--->" + user.getName());
//            System.out.println("age---->" + user.getAge());
//        }
        if(Debug.isDebuggerConnected()){
            Log.i("parseJson2Obj", list.toString());
        }
        return list;
    }
}

时间: 2025-01-20 14:14:00

android中处理json最佳方法的相关文章

Android中XUtils3框架使用方法详解(一)_Android

xUtils简介 xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的API语法进行的演示.相信大家对这个框架也都了解过, 下面简单介绍下XUtils3的一些基本知识. XUtils3一共有4大功能:注解模块,网络

Android中关于JSON相关应用分析_Android

本文分析了Android中关于JSON相关应用.分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON的结构: Name/Value Pairs,类似所熟知的Keyed list. Hash table.Discti

Android中XUtils3框架使用方法详解(一)

xUtils简介 xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的API语法进行的演示.相信大家对这个框架也都了解过, 下面简单介绍下XUtils3的一些基本知识. XUtils3一共有4大功能:注解模块,网络

Android中关于JSON相关应用分析

本文分析了Android中关于JSON相关应用.分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON的结构: Name/Value Pairs,类似所熟知的Keyed list. Hash table.Discti

android中圆角图像生成方法

  这篇文章主要介绍了android中圆角图像生成方法,涉及Android处理圆角图像的技巧,需要的朋友可以参考下 本文实例讲述了android中圆角图像生成方法.分享给大家供大家参考.具体分析如下: 在android开发中为了美观,常常要求ImageView中显示出圆角图像的效果,这个如何实现? 这里总结了网上的最优方法:将图像处理成圆角,然后在加载给ImageView显示,代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public Bitmap

详解Android中Intent的使用方法_Android

一.Intent的用途 Intent主要有以下几种重要用途: 1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该Intent对象包含了要启动的Activity的信息及其他必要的数据. 2. 启动Service:可以将Intent对象传递给startService()方法或bindService()方法以启动一个Service,该Intent对象包含了要启动的Service的

handle-关于Android中调用了post方法后数据还是显示不出来的问题

问题描述 关于Android中调用了post方法后数据还是显示不出来的问题 Map params = new HashMap(); params.put(HZConstants.USER_TOKEN, HZApplication.get().getToken()); NetworkController.getInstance(mContext).drawperform(params,new NetworkCallBack() { @Override public void response(St

array-如何访问 android 中的 json 数组?

问题描述 如何访问 android 中的 json 数组? 我想在程序中使用一个 json 文件.Json 文件结构如下,可以成功的访问 json 数组 "business",但是现在我想访问 business_cat 和 business_cat 中的cat 1 和 cat 2.我该如何访问这些值? { "business":[ { "id":"13", "category":"Dinner&q

android中这两种方法有什么区别和联系的问题?????

问题描述 android中这两种方法有什么区别和联系的问题????? startService(Intent)/bindService(Intent):来启动一个Service 这两种方法有什么区别和联系 解决方案 详细参考