216.m1-JSON中2种不同的数据的解析

当一个JSON中有2种不同的数据,需要有不同的用途作为不同的Holder,这个时候需要分开解析

数据中title是一个单独的类型,需要单独显示,解析的过程如下

CategoryProtocol.java

package com.ldw.market.protocol;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.ldw.market.domain.CategoryInfo;

/*
 * 解析分类模块的数据
 */
public class CategoryProtocol extends BaseProtocol<List<CategoryInfo>> {

	@Override
	public List<CategoryInfo> parseJson(String json) {
		List<CategoryInfo> categoryInfos=new ArrayList<CategoryInfo>();
		try {
			JSONArray array=new JSONArray(json);
			for(int i=0;i<array.length();i++){
				JSONObject jsonObject = array.getJSONObject(i);
				String title=jsonObject.getString("title");
				//当前的对象是标题的时候,单独把title添加到集合中
				CategoryInfo categoryInfo=new CategoryInfo();
				categoryInfo.setTitle(title);
				categoryInfo.setIsTitle(true);
				categoryInfos.add(categoryInfo);
				
				//对象是其他的数据的时候单独保存
				JSONArray jsonArray = jsonObject.getJSONArray("infos");
				for(int j=0;j<jsonArray.length();j++){
					JSONObject jsonObject2 = jsonArray.getJSONObject(j);
					String url1=jsonObject2.getString("url1");
					String url2=jsonObject2.getString("url2");
					String url3=jsonObject2.getString("url3");
					String name1=jsonObject2.getString("name1");
					String name2=jsonObject2.getString("name2");
					String name3=jsonObject2.getString("name3");
					//最后一个参数判断数据是否是title
					CategoryInfo categoryInfo2=new CategoryInfo(title, url1, url2, url3, name1, name2, name3,false);
					categoryInfos.add(categoryInfo2);
				}
				
			}
			return categoryInfos;
			
		} catch (JSONException e) {
			e.printStackTrace();
			return null;
		}
	
	}

	@Override
	public String getKey() {
		return "category";
	}
}

JSON数据如下:

[
    {
        "infos": [
            {
                "name1": "休闲",
                "name2": "棋牌",
                "name3": "益智",
                "url1": "image/category_game_0.jpg",
                "url2": "image/category_game_1.jpg",
                "url3": "image/category_game_2.jpg"
            },
            {
                "name1": "射击",
                "name2": "体育",
                "name3": "儿童",
                "url1": "image/category_game_3.jpg",
                "url2": "image/category_game_4.jpg",
                "url3": "image/category_game_5.jpg"
            },
            {
                "name1": "网游",
                "name2": "角色",
                "name3": "策略",
                "url1": "image/category_game_6.jpg",
                "url2": "image/category_game_7.jpg",
                "url3": "image/category_game_8.jpg"
            },
            {
                "name1": "经营",
                "name2": "竞速",
                "name3": "",
                "url1": "image/category_game_9.jpg",
                "url2": "image/category_game_10.jpg",
                "url3": ""
            }
        ],
        "title": "游戏"
    },
    {
        "infos": [
            {
                "name1": "浏览器",
                "name2": "输入法",
                "name3": "健康",
                "url1": "image/category_app_0.jpg",
                "url2": "image/category_app_1.jpg",
                "url3": "image/category_app_2.jpg"
            },
            {
                "name1": "效率",
                "name2": "教育",
                "name3": "理财",
                "url1": "image/category_app_3.jpg",
                "url2": "image/category_app_4.jpg",
                "url3": "image/category_app_5.jpg"
            },
            {
                "name1": "阅读",
                "name2": "个性化",
                "name3": "购物",
                "url1": "image/category_app_6.jpg",
                "url2": "image/category_app_7.jpg",
                "url3": "image/category_app_8.jpg"
            },
            {
                "name1": "资讯",
                "name2": "生活",
                "name3": "工具",
                "url1": "image/category_app_9.jpg",
                "url2": "image/category_app_10.jpg",
                "url3": "image/category_app_11.jpg"
            },
            {
                "name1": "出行",
                "name2": "通讯",
                "name3": "拍照",
                "url1": "image/category_app_12.jpg",
                "url2": "image/category_app_13.jpg",
                "url3": "image/category_app_14.jpg"
            },
            {
                "name1": "社交",
                "name2": "影音",
                "name3": "安全",
                "url1": "image/category_app_15.jpg",
                "url2": "image/category_app_16.jpg",
                "url3": "image/category_app_17.jpg"
            }
        ],
        "title": "应用"
    }
]

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值