我使用此方法来解析JSON字符串,但它太慢了......有没有更好的方法呢? 感谢
synchronized private void parseCategories(String response){
try{
JSONArray categoriesJSONArray = new JSONArray (response);
// looping through All Contacts
for(int i = 0; i < categoriesJSONArray.length(); i++){
JSONObject currentCategory = categoriesJSONArray.getJSONObject(i);
String label="";
String categoryId="";
// Storing each json item in variable
if(currentCategory.has("label"))
label = currentCategory.getString("label");
if(currentCategory.has("id"))
categoryId = currentCategory.getString("id");
if(
label!=null &&
categoryId!=null
)
{
Category toAdd = new Category(categoryId, label);
categories.add(toAdd);
}
}
//Alphabetic order
Collections.sort(
categories,
new Comparator<Feed>() {
public int compare(Feed lhs, Feed rhs) {
return lhs.getTitle().compareTo(rhs.getTitle());
}
}
);
Intent intent = new Intent("CategoriesLoaded");
LocalBroadcastManager.getInstance(mAppContext).sendBroadcast(intent);
}catch (JSONException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
使用GSON库。您可以将对象转换为json字符串,如下例所示:
MyClass MyObject;
Gson gson = new Gson();
String strJson = gson.toJson(MyObject);
答案 1 :(得分:1)
这里尝试使用代码开始。你需要Gson
库。
Gson gson=new Gson();
MyBean myBean=gson.fromJson(response);
Note:
这里MyBean类包含json字符串中存在的字段,例如: id
,以及吸气剂和二传手。其余的由Gson
处理。
这是一个快速演示。
import com.google.gson.annotations.SerializedName;
public class Box {
@SerializedName("id")
private String categoryId;
// getter and setter
}
说你JSON
看起来如下:
{"id":"A12"}
您可以按如下方式解析它:
class Parse{
public void parseJson(String response){
Gson gson=new Gson();
Box box=gson.fromJson(response,Box.class);
System.out.println(box.getCategoryId());
}
}
输出
A12
有关Gson
访问here