精华内容
下载资源
问答
  • 我假设你用是com.googlecode.json-simple库吧(你提供信息真太少了,不知道该从哪说起)然后,我再假设你是要修改shops里第一项shopName,代码这样写:JSONObject res = (JSONObject) obj.get("result");...

    我假设你用的是com.googlecode.json-simple库吧(你提供的信息真的太少了,不知道该从哪说起)

    然后,我再假设你是要修改shops里第一项的shopName,代码这样写:

    JSONObject res = (JSONObject) obj.get("result");

    JSONArray arr = (JSONArray)res.get("shops");

    arr.set(0, "shopName: fuck");

    System.out.println(obj);//检查结果

    如果你是想给shops加一项内容,可以:

    JSONObject res = (JSONObject) obj.get("result");

    JSONArray arr = (JSONArray)res.get("shops");

    JSONObject newShop = new JSONObject();

    newShop.put("shopId", "asdfdsaf");

    newShop.put("shopName", "毛驴");

    newShop.put("icon", "");

    arr.add(newShop);

    System.out.println(obj);//检查结果

    展开全文
  • JSON前后台对接数据的调试特别麻烦,最近要做的要求Json的Key值必须是小写。通过在entity(实体类)中添加注解@JSONField(name="XXXX")虽然也可以实现转化的json的key值是小写的,但需要一个个的去写太过麻烦了。在...

    JSON前后台对接数据的调试特别麻烦,最近要做的要求Json的Key值必须是小写。通过在entity(实体类)中添加注解@JSONField(name="XXXX")虽然也可以实现转化的json的key值是小写的,但需要一个个的去写太过麻烦了。在网上找到了一个通过递归来将所有key值换成小写的。 https://www.cnblogs.com/lgtrajectory/p/4080852.html

    import com.alibaba.fastjson.JSONArray;

    import com.alibaba.fastjson.JSONObject;

    public class JSONTools {

    public static JSONObject transObject(JSONObject o1){

    JSONObject o2=new JSONObject();

    o1.forEach((key, value) -> {

    if(value.getClass().toString().endsWith("JSONObject")){

    o2.put(key.toLowerCase(), transObject((JSONObject)value));

    }else if(value.getClass().toString().endsWith("JSONArray")){

    o2.put(key.toLowerCase(), transArray(o1.getJSONArray(key)));

    }else{

    o2.put(key.toLowerCase(), value);

    }

    });

    return o2;

    }

    public static JSONArray transArray(JSONArray o1){

    JSONArray o2 = new JSONArray();

    for (int i = 0; i < o1.size(); i++) {

    Object jArray=o1.getJSONObject(i);

    if(jArray.getClass().toString().endsWith("JSONObject")){

    o2.add(transObject((JSONObject)jArray));

    }else if(jArray.getClass().toString().endsWith("JSONArray")){

    o2.add(transArray((JSONArray)jArray));

    }

    }

    return o2;

    }

    }

    展开全文
  • JSONObject和JSONArray都可以用来替换标准数据结构。要执行一个setter,只需在put(String name, Object value)之前调用remove(String name)即可。下面是一个简单例子:public class BasicDB {private JSONObject...

    它实际上都在文档中。

    JSONObject和JSONArray都可以用来替换标准的数据结构。

    要执行一个setter,只需在put(String name, Object value)之前调用remove(String name)即可。

    下面是一个简单的例子:

    public class BasicDB {

    private JSONObject jData = new JSONObject;

    public BasicDB(String username, String tagline) {

    try {

    jData.put("username", username);

    jData.put("tagline" , tagline);

    } catch (JSONException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    public String getUsername() {

    String ret = null;

    try {

    ret = jData.getString("username");

    } catch (JSONException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    return ret;

    }

    public void setUsername (String username) {

    try {

    jData.remove("username");

    jData.put("username" , username);

    } catch (JSONException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    public String getTagline() {

    String ret = null;

    try {

    ret = jData.getString("tagline");

    } catch (JSONException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    return ret;

    }

    展开全文
  • //方法一:修改JSONObject的键public static JSONObject changeJsonObj(JSONObject jsonObj,Map keyMap) {JSONObject resJson = new JSONObject();Set keySet = jsonObj.keySet();for (String key : keySet) {String...

    //方法一:修改JSONObject的键

    public static JSONObject changeJsonObj(JSONObject jsonObj,Map keyMap) {

    JSONObject resJson = new JSONObject();

    Set keySet = jsonObj.keySet();

    for (String key : keySet) {

    String resKey = keyMap.get(key) == null ? key : keyMap.get(key);

    resJson.put(resKey,jsonObj.get(key));

    try {

    if (jsonObj.get(key) instanceof JSONObject) {

    JSONObject jsonobj1 = (JSONObject) jsonObj.get(key);

    resJson.put(resKey, changeJsonObj(jsonobj1, keyMap));

    } else if (jsonObj.get(key) instanceof JSONArray) {

    JSONArray jsonArr = (JSONArray) jsonObj.get(key);

    resJson.put(resKey, changeJsonArr(jsonArr, keyMap));

    } else if(jsonObj.get(key) instanceof ResponseHelper){

    //封装的实体类

    //将实体类转换为json格式,修改实体类的键

    Object obj = JSONArray.toJSON((ResponseHelper) jsonObj.get(key));

    resJson.put(resKey, changeJsonObj(JSONObject.parseObject(obj.toString()), keyMap));

    } else {

    resJson.put(resKey, jsonObj.get(key));

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    return resJson;

    }

    //方法二:修改JSONArray的键

    public static JSONArray changeJsonArr(JSONArray jsonArr,Map keyMap) {

    JSONArray resJson = new JSONArray();

    for (int i = 0; i < jsonArr.size(); i++) {

    JSONObject jsonObj = jsonArr.getJSONObject(i);

    resJson.add(changeJsonObj(jsonObj, keyMap));

    }

    return resJson;

    }

    //测试方法:

    //测试数据格式大致为: {"info":{"data":[{"lng":"333","lat":"3"}],"count":1}}

    //备注:如果实体类中数据latitude为null,则转换时,控制台打印不出来转换后的数据

    public static void main(String[] args) {

    String json = "{\"areaid\":\""+1+"\"}";

    Map map = new HashMap<>();

    map.put("latitude","lat");

    map.put("longitude","lng");

    List list = new ArrayList();

    Map maplist2 = new HashMap<>();

    maplist2.put("latitude","3");

    maplist2.put("longitude","333");

    list.add(maplist2);

    ResponseHelper helper = new ResponseHelper(list,list.size());

    JSONObject sgxcjson = new JSONObject();

    sgxcjson.put("info", helper);

    JSONObject jsonObject = SfApplicationTests.changeJsonObj(sgxcjson,map);

    System.out.println(jsonObject);

    }

    展开全文
  • JSONObject的key值的修改

    千次阅读 2019-03-14 19:07:05
    JSON前后台对接数据的调试特别麻烦,最近要做的要求Json的Key值必须是小写。通过在entity(实体类)中添加注解@JSONField(name="XXXX")虽然也可以实现转化的json的key值是小写的,但需要一个个的去写太过麻烦了。在...
  • 修改org.json.JSONObject的stringToValue,返回能容纳整数的最小包装类型而不是Integer。(修正数据交互工具中当对象包含属性的类型为类型为byte/short时反射调用field.set(bean,obj)引发异常。)黑色粗体斜体为增加...
  • 下面举一个代码列子目的是实现如下功能:[{"userId":1,"userName":"plf"},{"userId":2,"userName":"phy"},{"userId":3,"userName":"ply"}]变成[{"user_id":1,"user_name":"plf"},{"user_id":2,"user_name":"phy"},{...
  • 修改org.json.JSONObject的stringToValue,返回能容纳整数的最小包装类型而不是Integer。(修正数据交互工具中当对象包含属性的类型为类型为byte/short时反射调用field.set(bean, obj)引发异常。)黑色粗体斜体为增加...
  • 文末会有读者福利简介:在程序开发过程中,在参数传递,函数返回值等方面,越来越多使用JSON。JSON(JavaScript Object Notation)是一种轻量级数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,...
  • 字符串转json ,下面这种方式会把原有字符串顺序打乱,所以不采用jsonobject jsonobject = json.parseobject(你json);要先转为linkedhashmap,再转jsonlinkedhashmap json = json.parseobject(你json,...
  • tree型数据分多层级菜单,只有在其中某一级使用了a这个变量名,在其他层级数据结构中使用是b这个变量名,需要将key值统一成a或者bjson数据:let zf_jsonObj = [{name: '用户权限管理',children: [{name: '二级...
  • 代码部分import ...import com.alibaba.fastjson.JSONObject;import java.util.HashMap;import java.util.Map;import java.util.Set;public class JSONUtil_1021 {public static void main(...
  • 然而,总可能会遇到情况需要对pb图做修改。TF提供了graph_editor 和graph transform tool,然而,这并不能解决所有问题。比如,我现在有一个pretrainedpb model,但模型把两个头结点定义成了Variabl...
  • JSON前后台对接数据调试特别麻烦,最近客户对Json格式要求Key值小写,网络狂搜 用了JSON config发现只能最外层改变, 只能写个递归来讲所有key值换成小写。 import java.util.Iterator; import ...
  • 我想要做是在特定索引位置更改/替换json数组中值。在查看http://www.json.org/javadoc/org/json/JSONArray.html文档后,我发现jsonArray没有getIndex()方法。这种情况如何在给定索引位置更新我json数组...
  • 场景当资源上有个标签键: 部门,标签值:零售,由于部门资源整合要把标签(键: 部门,值:零售)修改为标签(键: 部门,值:新零售),如何快速批量修改标签呢?背景信息运维编排服务OOS通过模板定义您需要编排运维...
  • 1 哈希表哈希表属于编程中比较常见...key 可以查找到对应 value,也就是说这种数据结构存储是键值对“列表”。1.1 原理首先哈希表中第一个点就是哈希函数,也就是我们需要一个函数,根据我们 key 计算出一...
  • 介绍Redis是采用字典结构以键值对形式存储数据,而散列类型(hash) 键值也是一种字典结构,其存储了字段(field)和字段值映射,但字段值只能是字符串,不支持其他数据类型,也就是说散列类型不能嵌套其他...
  • value值和其他key值不变我用map方法试了,能够把url改为path,但是其他键值对都不见了……let routerNew = []routerNew.push(router.map(function(item){return {path:item.url}}))console.log(routerNew)打印出来如...
  • delete(json['key']);或者delete(json.key);//添加对象objectjson.object=value;或者json['object']=value;如果数据是查询数据库得到,那么可能会存在空值,for循环JSON数据挨个移除空值或者操作数据比较繁琐。...
  • java下JSONObject的key值转为小写

    千次阅读 2015-12-05 15:37:06
    网上找了一些源码,发现只转化了value值为String,JSONObject和JSONArray。一些值为int类型并没有转化。于是修改了下,下面是源码package com.test.json;import java.util.Iterator;import net.sf.json.JSONArray; ...
  • value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d = {key1 : value1, key2 : value2 }键一般是唯一,如果重复最后一个键值对会替换前面,值不需要唯一。...
  • 通过JsonObject的keys方法得到key的迭代器是无序的,要想实现排序,目前只能通过加装一层处理(方法来自Stack Overflow,感谢大神),将key-vlaue放入ThreeMap排序,排序规则默认是字母表顺序,可自定义Comparator...
  • 背景:最近 fastjson 被爆出新远程代码执行漏洞之后,赶紧督促项目组快马加鞭去修改(吐槽:真改不动,架不住项目既多又老),鉴于项目不同,依赖 fastjson 版本也不同,本次着重谈 fastjson 1.2.16 版本遇到...
  • 1、JsonObject中的数据是key-value形式,通过JsonObject的keys方法得到key的迭代器是无序的,要想实现排序,目前只能通过加装一层处理(方法来自Stack Overflow,感谢大神),将key-vlaue放入ThreeMap排序,排序规则...
  • 但面对大量随机写时,B+树会分裂,插入的Key值跨度会非常大,导致需要大量磁盘I/O。而LevelDB采用LSM树的思想,将随机写变为顺序写从而提升性能。LevelDB提供了三个和写操作相关的接口。DBImpl::Put: 增加或修改一个...
  • JsonObject数据顺序问题

    千次阅读 2019-04-10 13:26:08
    发现JsonObject不能按put顺序显示数据,查看了一下JsonObject类,发现JsonObject内部是用Hashmap来存储的,所以输出是按key的排序来的,如果要让JsonObject按put的先后顺序排列,可以修改JsonObject的定义HashMap改...
  • js动态修改对象key

    2021-02-02 14:32:35
    背景:想使用layui的树形组件,但是后台返回的对象key和树形组件的属性名不一样,如果直接赋值,会导致树形显示不出title,所以找了个方法修改json对应的key //修改树节点与后台返回值对应的字段key //jsonObject :...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

修改jsonobject的key