Java Object转JSONObject,ArrayList,取值

  • Post author:
  • Post category:java



1、Java中 Object转JSONObject:

JSONObject json=(JSONObject) JSONObject.toJSON(list.get(0));


2、Java中 Object转化为ArrayList

List<Object> list= (List<Object>) obj


3、Java中 获取Object中的值的方法

例:

Object object = {name:“张三”,age:23}

代码实现:

Map entity = (Map)object;
//获取object中name的值:
String name = entity.get("name").toString();
//获取object中age的值
int age = Integer.valueOf(entity.get("age"));


4、JSON对象中获取指定key的值


平时处理Json对象时,想获取JSON对象中指定key的值,如下图,想直接取到”result”、”status”的值。

{

 "code": 0,

    "message": "ok",

    "body": {

        "result": "success",

        "status": "1"

    }

}

取值:


strResult = EntityUtils.toString(httpResponse.getEntity());
JSONObject jsonObject = JSONObject.parseObject(strResult);
String result = jsonObject.getJSONObject("body").getString("result");


jsonobject修改key的值_如何修改json字符串中某个key对应的value值


例子:

//字符串转json ,下面这种方式会把原有的字符串顺序打乱,所以不采用

JSONObject jsonObject = JSON.parseObject(你的JSON);

//要先转为LinkedHashMap,再转json

LinkedHashMap json = JSON.parseObject(你的JSON,LinkedHashMap.class,Feature.OrderedField);

JSONObject jsonObject=new JSONObject(true);

jsonObject.putAll(json);

//更新频度

jsonObject.put("key", "P");//替换key对应的值

String new_text = jsonObject.toJSONString();

/**此时new_text就是已经更新过后的新json字符串

补充知识:java中修改嵌套json字符串中的value,比较精准的方法

我就废话不多说了,大家还是直接看代码吧~

public class Test {
/**

* @param args the command line arguments

*/

public static void main(String[] args) throws JSONException{
// TODO code application logic here.

//已有Json格式字符串{"id":"10001","name":"肉类","menus":[{"name":"牛肉","price":"30.00"},{"name":"羊肉","price":"20.00"}]}

//需求是将牛肉的price改为50.00

String json="{\"id\":\"10001\",\"name\":\"肉类\",\"menus\":[{\"name\":\"牛肉\",\"price\":\"30.00\"},{\"name\":\"羊肉\",\"price\":\"20.00\"}]}";

System.out.println("1. "+json);

JSONObject kindJson=new JSONObject(json);//将string转为jsonobject

String menuJson=kindJson.getString("menus");//获取到menus

JSONArray menus=new JSONArray(menuJson);//再将menuJson转为jsonarray

System.out.println("2. "+menus);

JSONObject beefJson= menus.getJSONObject(0);//根据下标0(类似数组)获取牛肉的json对象

beefJson.put("price", "50.00");//直接提交price的key,如果该key存在则替换value

menus.put(0, beefJson);//覆盖掉原来的值

System.out.println("3. "+beefJson);

System.out.println("4. "+menus);//替换完后打印查看

kindJson.put("menus", menus);//再将menus覆盖

json=kindJson.toString();//赋值

System.out.println("5. "+json);//替换完成

}

}

/**执行结果:



可见最后json字符串中的值被修改了,但是字段的顺序却发生了变化,因为JsonObject是用HashMap来存储的,

并不是按顺序进行存储,如果有这个需求的话可以自定义JsonObject,用有序的LinkedHashMap代替HashMap。

这里用的是将json字符串转换为json的对象,

然后逐步将需要修改的对象取出来,利用put将原来的值覆盖完后再逐步提交回去。




版权声明:本文为qqqwwweeerasd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。