@claudii 谢谢您的回复 按照您所说的修改,会报错哦。 麻烦再帮忙回复下吧 ,谢啦错误提示是: The method JSONObject(String) is underfined for the type JSONObject这应该是由于private static List<MyInformation> parsejsonmyinfo(String string) throws Exception {
List<MyInformation> list = new ArrayList<MyInformation>(); JSONObject obj1 = new JSONObject(string); String userid = obj1.getString("userid"); //Log.d(TAG,"yong++ parsejsonbroadcastfirst id ="+item.getString("id")); String username = obj1.getString("username"); //username
麻烦再详细说下吧,不太明白
改为JSONObject object = obj1.getJSONObject("service");
import java.io.IOException;
import java.util.HashMap;
import org.codehaus.jackson.map.ObjectMapper;
import com.google.gson.Gson;/**
* Json Utils
* @param obj
* @return
*/
public class JsonUtil { /**
* DESEncrypt Key
*/
private static final String KEY = "12345abcde";
/**
* Pojo To Json
* @param obj
* @return
*/
public static String pojoToJson(Object obj){
Gson gson = new Gson();
String gsonStr = gson.toJson(obj);
return gsonStr;
}
/**
* Pojo To Json
* @param obj
* @return
*/
public static String pojoToJsonEncode(Object obj){
Gson gson = new Gson();
String gsonStr = gson.toJson(obj);
String resJson = new String(Base64Util.encode(gsonStr.toString().getBytes()));
resJson = DESEncryptUtils.encode(KEY, resJson);
return resJson;
}
/**
* Json To String
* @param obj
* @return
*/
public static String jsonDecode(String str){
try {
return new String(Base64Util.decode(DESEncryptUtils.decode(KEY, str)));
} catch (Exception e) {
e.printStackTrace();
}
return null;
} /**
* Json To Map
* @param obj
* @throws IOException
* @throws JsonMappingException
* @throws JsonParseException
*/
public static HashMap<String, Object> jsonToMap(String json) throws IOException{
ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> map = mapper.readValue(json, HashMap.class);
return map;
}
/**
* Json to Bean
*/
public static Object pojoToMap(String json, Object javaBean) {
Gson gson = new Gson();
Object fromJson = gson.fromJson( json.toString() ,javaBean.getClass());
return fromJson;
}
}
/**
* Json To Map
* @param obj
* @throws IOException
* @throws JsonMappingException
* @throws JsonParseException
*/
public static HashMap<String, Object> jsonToMap(String json) throws IOException{
ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> map = mapper.readValue(json, HashMap.class);
return map;
}用这个,会把json数据,不管什么格式的都直接转化成map,你转化后把值打印出来,然后get就可以了。
ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> map = mapper.readValue(json, HashMap.class);
方法2:
/**
* Json to Bean
*/
public static Object pojoToMap(String json, Object javaBean) {
Gson gson = new Gson();
Object fromJson = gson.fromJson( json.toString() ,javaBean.getClass());
return fromJson;
}用谷歌的也很方便,把数据格式用对应的POJO写好,把POJO传进去,json就会解析成对应的bean对象,直接从对象取相应的值就可以,不会的话,可以再百度学一下!
Gson gson = new Gson();
Object fromJson = gson.fromJson( json.toString() ,javaBean.getClass());希望,帮到你!
@claudii 谢谢您的回复
按照您所说的修改,会报错哦。
麻烦再帮忙回复下吧 ,谢啦错误提示是:
The method JSONObject(String) is underfined for the type JSONObject这应该是由于private static List<MyInformation> parsejsonmyinfo(String string) throws Exception {
List<MyInformation> list = new ArrayList<MyInformation>();
JSONObject obj1 = new JSONObject(string);
String userid = obj1.getString("userid");
//Log.d(TAG,"yong++ parsejsonbroadcastfirst id ="+item.getString("id"));
String username = obj1.getString("username"); //username
JSONArray jsonArray = obj1.getJSONArray("service");
"userid": "8012be515cc9244ef263e91d2b442349",
"username": "123456789",
"service": {
"name": "普通会员",
"endtime": "2015-04-12 15:23:54",
"area": {
"times": "2",
"num": "1",
"area": [
""
]
}
}
}
private static List<MyInformation> parsejsonmyinfo(String string) throws Exception {
List<MyInformation> list = new ArrayList<MyInformation>();
JSONObject obj1 = new JSONObject(string);
String userid = obj1.getString("userid"); String username = obj1.getString("username"); //username
JSONObject jsonobj = obj1.getJSONObject("service");
name1 = jsonobj .getString("name");
endtime = jsonobj .getString("endtime"); JSONObject jsonobj1 = jsonobj.getJSONObject("area");
times = jsonobj1.getString("times");
num = jsonobj1.getString("num");
//至于数组的话貌似没看明白,不太清楚
area2 = item.getString("area"); list.add(new MyInformation(userid,username,name1,endtime,times,num,area2)); return list;
}