安卓中关于HashMap的存值,以及转成string;对象的改变

安卓中关于HashMap的存值,以及转成string;对象的改变

  • 1.后台过来的hashMap,原原本本地再返回回去。
  • 2.后台过来的hashMap,处理成08-28:萨达的字符串
  • 3.对象赋值后,不改变原来对象的值

1.后台过来的hashMap,原原本本地再返回回去。

后台传过来的字段是这样子的:
"use_trip":{
“08-28”:“萨达”,
“08-29”:“不好吧”
}

我本地是用HashMap use_trip去接收这个字段的。
然后现在后台需要原原本本的再把这个数据传回去。
这个时候我们需要这么去转换

JSONObject jsonObj = new JSONObject(mTripChangeEntity.use_trip);//mTripChangeEntity这个是实体,use_trip对应上面过来的字段
String content = jsonObj.toString();//这样又转成原原本本的json串啦

2.后台过来的hashMap,处理成08-28:萨达的字符串

"use_trip":{
“08-28”:“萨达”,
“08-29”:“不好吧”
}

嗯,没错还是这个,这次我们需要把它转成一串字符串而且要是下面这种

08-28:萨达
08-29:不好吧
  public static String getMapToString(HashMap<String, String> map) {
        if (map != null) {
            Set<String> keySet = map.keySet();
            String[] keyArray = keySet.toArray(new String[keySet.size()]);
            StringBuilder sb = new StringBuilder();
            for (String key : keyArray) {
                if (map.get(key).trim().length() > 0) {
                    sb.append(key).append(":").append(map.get(key).trim()).append("\n");//把它拼成key:value  然后换行
                }
            }
            return sb.toString();
        }
        return "";
    }

3.对象赋值后,不改变原来对象的值

这个是个基础,记录下吧。把对象A赋值给对象B,然后改变了B里面一个参数的值,导致了A对应的值也改变了
错误示范

public AreaParam  mStartAreaParam=new AreaParams();
AreaParam areaParams =mStartAreaParam;//不能这么整,这样改了areaParams 里的参数,mStartAreaParam也会变

正确示范

 AreaParams areaParams =new AreaParams();
 String areaJson =new Gson().toJson(mStartAreaParam);
 areaParams=(AreaParams)JsonUtil.fromJson(areaJson,AreaParams.class);//这样才是真正的值拷贝,改变新对象不会影响到原来的对象

你可能感兴趣的:(Android,JAVA)