这个可以使用for循环加上java的Map集合来做, 代码冗长,扩展性差,不推荐!!
推荐使用 阿里的fastjsonjar包 或者gson来处理 ;因为你提供的数据都是JSON格式的数据
以fastjson为例,参考代码如下
//使用fastjson包import comalibabafastjsonJSON;
import comalibabafastjsonJSONArray;
import comalibabafastjsonJSONObject;
public class Test {
public static void main(String[] args) {
//json字符串
String jsonStr = "[{'a':1,'b':3,'c':5},{'a':1,'b':7,'c':9},{'a':2,'b':2,'c':3},{'a':1,'b':2,'c':3},{'a':2,'b':4,'c':5}]";
JSONArray objects = JSONparseArray(jsonStr);//字符串-->json数组
JSONArray oneAry=new JSONArray();//json数组
JSONArray twoAry=new JSONArray();//json数组
for (int i = 0; i < objectssize(); i++) {
JSONObject obj = (JSONObject) objectsget(i);
int avlue = (int) objget("a");//获取a的值
if(avlue==1){//如果是1,那么存入数组1
oneAryadd(obj);
}else if(avlue==2){
twoAryadd(obj);
}
}
JSONObject one=new JSONObject();
oneput("one", oneAry);//存入到json对象
JSONObject two=new JSONObject();
twoput("two", twoAry);
Systemoutprintln(one);
Systemoutprintln(two);
}
}
你使用是什么json的jar包啊
如果你的json是直接实现map的,直接通过迭代器访问啊
··说错了
是orgjson不是实现map的但是它有一个获取迭代器的方法啊
在开发过程中遇到一个问题:服务器经过排序返回后的字符串数据在使用fastjson解析后,数据顺序发生了变化,这个问题也就是:使用fastjson解析数据后导致顺序改变或者说是如何保持String字符串转为json对象时顺序不变
解决方法:
方法一:解析时增加参数不调整顺序(亲测使用有效)
JSONObject respondeBodyJson = JSONObjectparseObject(str, FeatureOrderedField);
方法二:配置有序对象
JSONObjectparseObject(str,LinkedHashMapclass,FeatureOrderedField);
方法三:初始化json对象为有序对象
JSONObject retObj = new JSONObject(true);
方法四:使用Gson解析
JsonObject returnData = new JsonParser()parse(str)getAsJsonObject();
这样生成的json对象就与放入数据时保持一致了
注意:引入的fastjson相关的jar包版本要高于123,因为FeatureOrderedField是从123开始的
当 value 为 null 时, JSONObject toJSONString ()返回的 json 字符串将不展示对应的 key ,这明显不是我们想要的,所以可以使用
JSONObjecttoJSONString(Object object, SerializerFeature… features) 来获取我们想要的值, SerializerFeature 属性对应的值和含义如下:
关于SharedPreferences顺便再复习一下:
SharedPreferences 是Android 中的内置API,它允许我们存取键值对形式的基础类型数据,像:boolean,float ,int , long , string 。这些数据将会持久化的存在,即使你的应用程序结束之后(注意:如果应用从手机上写在掉后,该程序对应的SharedPreferences将会消失,保存在路径:/data/data/<package_name>/shared_prefs 目录下)
注意:User Preferences 用户配置
严格来说,SharedPreferences最好不要用来保存“用户配置”,比如,用户选择了什么铃声,是否自动更新等等。如果要为应用创建用户配置,可以使用PreferenceActivity,它可以用来创建“用户配置”。(PreferenceActivity用来创建程序中的设置界面)
以上就是关于java数组装换。。。如下全部的内容,包括:java数组装换。。。如下、java json处理 怎么样遍历未知key 具体 看代码、json.parseobject()的set方法设置顺序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)