Android json字符串替换value值的问题

JSON字符串如下:{"device_id": "gh_4da91c444fee_8c04d0b766780c62","device_type":"gh_4da91c444fee","msg_type":"notify","data":"jlfjsdlkjflk","services":{"operation_status":{"status": 0},"lightbulb":{"alpha":70}}}我先替换status和alpha的值, 但是每一次更换的值是不固定的,你有什么方法可以替换吗

3个回答

你可以用fastjson,将json字符串转成对象,然后进行数值替换
json对象,在java中其实就是map

     public void test(){
        /*
        {
            "device_id": "gh_4da91c444fee_8c04d0b766780c62",
            "device_type": "gh_4da91c444fee",
            "msg_type": "notify",
            "data": "jlfjsdlkjflk",
            "services": {
                "operation_status": {
                    "status": 0
                },
                "lightbulb": {
                    "alpha": 70
                }
            }
        }
         */
        String jsonStr = "";
                //转换成JSON对象
        JSONObject jsonObj = JSONObject.parseObject(jsonStr);
                //根据key获取对象
        JSONObject services = jsonObj.getJSONObject("services");

        JSONObject operation_status = services.getJSONObject("operation_status");
        operation_status.put("status", 1);

        JSONObject lightbulb = services.getJSONObject("lightbulb");
        lightbulb.put("alpha", 100);

        jsonStr = jsonObj.toJSONString();

    }

先将json字符串解析为对象,再修改对象的属性,再转换为字符串吧。目前第三方的json解析的jar包用起来挺方便的,比如GSON,fastjson。

不如直接反序列化为java对象或JSON对象,然后再修改。
如果一定要通过修改字符串的方式,那就必须使用正则表达式了。 如.replace("\"status\":\d+", "\status\":"+status)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于Json value值取消双引号问题
我现在需要获得一个Json,格式如下:nvar data_d = "id":"root","text":"根节点","isExpand":"true","childNodes":["id":"org1","text":"软件","showCheck":"true"];nn其中:childNodes对应是一个数组,[value],需要这样的格式。n我在后台处理的代码如下:nMap map = new HashMap();n map.put("id", "root");n map.put("text", "根节点");n map.put("isExpand", "true");n map.put("childNodes", "["+hmap()+"]");n nprivate static Map hmap()n Map map = new HashMap();n map.put("id", "root");n map.put("text", "根节点");n map.put("showCheck",true);n return map;n n n String map2 = mapToJson(map);n n 打印出来的结果是:n [json]: ["id":"root","text":"根节点","isExpand":"true","childNodes":"[id\u003droot, text\u003d根节点, showCheck\u003dtrue]"]n n 格式不符合,换一种,直接用json:n JSONObject json = new JSONObject();n json.put("id", "root");n json.put("text", "根节点");n json.put("isExpand", "true");n json.put("childNodes", "["+con2List().toString().replace("\"", "'")+"]");n n private static JSONObject con2List() throws JSONExceptionn JSONObject jo = new JSONObject();n jo.put("id", "org1");n jo.put("text", "软件");n jo.put("showCheck", "true");n return jo;n n n 打印出来的结果是:n [json]: "id":"root","text":"根节点","isExpand":"true","childNodes":"['id':'org1','text':'软件','showCheck':'true']"n n 格式也不符合,childNodes对应的是:"[value]",多了双引号。n n 有人说这个是标准的json格式,但是我需要的就是开头那样的格式,json也好,string也好都可以。n n 求大神来解答。
获取嵌套Json里的value值
Json在java里表现的是String类型 String str="{“姓名”:“张三”,“成绩单”:{“语文”:80,“数学”:90,“英语”:100,}}"; 这个json是json嵌套了一个成绩单json 获取成绩单json里的value思路是这样的 获取到成绩单String 将成绩单String转换为JSONObject对象 使用JSONObject对象获取value 想使用这个JS...
json 对象 key value 值的提取
字符串转对象(strJSON代表json字符串)   var obj = eval(strJSON);   var obj = strJSON.parseJSON();   var obj = JSON.parse(strJSON); json对象转字符串(obj代表json对象)   var str = obj.toJSONString();   var str = JSON.stringi...
js取json的对象的value值
var obj = {"id": 1, "name":"张三"};for(var key in obj){ alert("Key是:" + key); alert("对应的值是:" + obj[key]);} for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。 实例 for...in 语句 如何使用 for...in 语句来遍历...
android Spinner value值与text值
这个demo是关于android中Spinner控件的使用(Spinner就是下拉框)。 需求:在Spinner实现取value值与text值。 如有BUG 或者不完善,欢迎小伙伴们提出~
if return和value值的问题
[img=https://img-bbs.csdn.net/upload/201402/01/1391211393_592904.jpg][/img]rn这个程序rn如果Age赋值30, 打印年龄是30.可是如果Age 是负1,为什么打印还是年龄30?rn我的理解是,如果Age是负1,下面那个if语句就等于没有用,直接return出去,紧接着this.age = value, value是负1,所以打印的Age还是负1. 但我的理解肯定是错了,因为打印是30,我哪里理解错了?
关于JSON获取value问题
hi,allrn 现在我有一个JSON的字符串,rn[code=javascript]rnmodel = "Productions": "\"Name\":\"DAO\",\"Name\":\"CGO\",\"Name\":\"GAO\"", "ForwardType": 2, "ResultType": 0,rn[/code]rn现在我想获取每个Name下的value。rn[code=javascript]rnJSON.parse(model.Productions)rnvar value = JSON.parse(model.Productions)["Name"];rn[/code]rn运行结果value只有GAO的值,想问一下怎么才能获取到每一个Productions呢?
新手问题 value的值
[code=HTML]rn<%! String name = null;rn String password = null;rn %>rn <% name = request.getParameter("name");rn password = request.getParameter("password");rn %>rn rn rn rn rn[/code]rn这样很正常但改成rn[code=HTML]" />[/code]rn后却有错rn为什么啊为什么?????
比较value值的问题
取道的value值,如rnthis.document.formname.a.value,取道的这个值是字符串型吗,怎么把这个值同一个整型数比较大小,如判断是否>0
xml文件Value值问题
rn rn rn rnrn如何让value支持图片?如:rn rn rn rn
提取JSON中的value
String str="{"createTime":"2017-07-05 16:25:21","id":1}"; JSONObject myJsonObject = new JSONObject(str); Integer id = Integer.parseInt(myJsonObject.getString("id")); 请参考:点击打开链接
阿里云json获取value
个人自己写测试程序 获取json的value值,进行2次开发。
如何换行问题~~当的value值获取的value值后
我在html页面单击时弹出可编辑文本框,在文本框中写的内容保存到页面时,内容无法自动换行(内容会挤压其它单元格),rn设置td的宽度也没用,各位高手不知有什么好的解决方法吗?rnrnrnhtml页面:rn rn[size=18px]js:[/size]rn //单击表格编辑事件rnfunction register()rn //可编辑框的单击事件rn $(".editable").click(function()rn if(!truee)return false;rn value = $(this).html();rn $(this).html("");rn $(""+value+"").appendTo($(this));rn $(this).children().css("position","absolute");rn $(this).children().focus();rn truee = false;rn editevent();//注册编辑框事件:按回车键时、失去焦点时rn );rn rn function editevent()rn //注册编辑框按回车键事件rn $(".editable").children().keyup(function (event) rn var keycode = event.which;rn if (keycode == 13) //按了回车键rn //另起一行rn ss=$(this).val()+" ";rn $(this).val(ss); rn rn );rn //注册下拉选择框按回车键事件rn $(".selectable").children().keyup(function (event) rn var keycode = event.which;rn if (keycode == 13) //按了回车键rn //另起一行rn value = $(this).val();rn $(this).parent().html(value);rn $(this).remove(); rn truee = true; rn rn );rnrn//注册编辑框事件:按回车键时、失去焦点时rnfunction editevent()rn //注册编辑框按回车键事件rn $(".editable").children().keyup(function (event) rn var keycode = event.which;rn if (keycode == 13) //按了回车键rn //另起一行rn ss=$(this).val()+" ";rn $(this).val(ss); rn rn );rn //失去焦点时事件rn $(".editable,.selectable").children().blur(function()rn value = $(this).val();rn $(this).parent().html(value);rn $(this).remove();rn truee = true;rn );rn
对‘Json::Value::operator=(Json::Value)’未定义的引用
环境:centos,Jsoncpprn详细:构造一个Json数据时rnJson::Value Val;rnVal["root"] = "hehe";(此处:对‘Json::Value::operator=(Json::Value)’未定义的引用)rn在编译时有调用jsoncpp的lib库,关于jsoncpp的其他调用没问题,在windows平台上使用jsoncpp编译没有此错误。
JSON接收值的问题??
var xmlhttp;rnfunction showData()rnvar type = "show";rntryrnxmlhttp = new ActiveXObject('Msxml2.XMLHTTP');rncatch(e)rntryrnxmlhttp = new ActiveXObject('Microsoft.XMLHTTP');rncatch(e)rntryrnxmlhttp = new XMLHttpRequest();rncatch(e)rnrnrnxmlhttp.onreadystatechange=function()rnif (4==xmlhttp.readyState)rnif (200==xmlhttp.status)rnvar data;rnalert('ok'); //这句都执行了,证明ajax没有问题rnalert(JSON.parse(xmlHttp.responseText));//这出出了问题,rn // 提示 Line:105rn // Char:13rn // Code:0rn // Error:例外被抛出且未被接住rn //我的json.js 已导入了。这是怎么回事啊。 rnrnelsernalert("error");rnrnrnrnxmlhttp.open("post", "pool");rnxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');rnxmlhttp.send("type="+type);rnrn还有一个问题,我在servlet中遍历数据库,并通过jsonObj.put("",""));存入json对象中了,可怎么才能全部传回来啊。rn我用out.println(jsonObj.toString());可只是传回来最后一条记录。。??rn希望高手们帮忙吧。1
Javascript的value方法 得值的问题 ?????????
Javascript的value方法 得值的问题, IE能得到值 但是 谷歌浏览器 就得不到值 希望各位朋友帮小弟 解决解决!!rnrn代码如下:rn[code=JScript]rn<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>rnrn rn rn My JSP 'testAjax.jsp' starting pagern rn rn rn 500rn rn rnrn[/code]rnrn其中value变量 谷歌浏览器得不到值 但是IE能得到值 希望各位朋友帮小弟 解决解决!!rnrn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/50.gif][/img]rn
下拉框 combobox 的value值问题
默认情况下,如果不设置后台的实际value值,系统会自动分配一个,但是仅限于前面的值不全是英文的状态,rn例如: rn**********************************************************************************************************rnrnrnCPUrnMousern移动硬盘rn移动存储rnrn************************************************************************************************************rn上面这段代码中,内容不全是英文的,系统会自动分配value值,但是内容为全英文的,系统就没有自动分配value值。rn目前,暂时解决方法为 强制设置别值(即:在后面加上: |“前台显示内容” )rn结果如下所示:rn************************************************************************************************************rnrnrnCPUrnMousern移动硬盘rn移动存储rnrn************************************************************************************************************rnrn不知道除此之外,还有哪些解决方法。rn说明:将内容中英文改为文字的建议就算了。rnrn
button改变value值的问题
在中的函数rnselClick()中要改变这个按钮本身的value值
修改hashtable的value值的问题
我在遍历hashtable的时候,想修改value值,但编译时出错,源代码如下:rnrn foreach (DictionaryEntry de in fc.ht) rn rn for (int j = 0; j < fLpnlMethod.Controls.Count; j++) rn rn if (fLpnlMethod.Controls[j].GetType() == typeof(ComboBox))rn rn ComboBox cb = fLpnlMethod.Controls[j] as ComboBox;rn if (de.Key.ToString() == cb.Name) rn rn de.Value = cb.Text;rn rn rn rn rn本人菜鸟,请各位大侠指点,谢谢!!
单选框value值设定问题
可以这样设吗?rn">rnrn问题是在预览界面中看到的单选按钮后面还显示了"> rnrn为什么会这样?是不是单选框的value值不能用这种方式来设?rn
js取value值问题
rn rn rnrnrnrnrnrnrnrn rnrnrnrnrn rn rn rnrnrnrnrnrnrnrn rnrnrn怎么才能各取各的值
html控件value值问题
1.前台显示 一个价格 不想放在inputText中因为text有边框rn若是放在 或中 在cs页又取不到这个价格value值rn怎么办?rn
CheckedListBox的读取Value值问题
判断CheckedListBox中选中的项的Value是true还是false
关于selected的value值的问题~~~~~~~~~~~~~~~~
请选择rn已完成rn未完成rnrn这样的功能如何实现,就是说选择“未完成”的时候,数据库中对应的值是,用户提单,用户主管审核,已指定资讯主办......俺上面写的是错的,请假下~~
关于select的value值的问题
怎么用js或者其他页面比如 window.opener.document."select的名字" 这样来指定 select的选中值rnrn例如在 .net 中可以 用 name.SelectValue="1" rnrnselect 中有两个值 ,一个是 原材料,一个是成品, 我想通过其他页面 选择产品来自动 改变select的值,用的是rnwindow.openerrnrn求帮忙,谢谢!
Cookie的value值更该问题
需求:登录界面,有一复选框(是否记住用户名密码)第一次输入用户名密码,勾选复选框,记住用户名密码,创建Cookie对象UserInfo 保存了两个键值 uName = "用户名",uPwd="密码"rn当第二次想用其他用户名时须更新 UserInfo 中的两个键值。现在不能更该rnrn有高手能帮我看下这段代码吗?,rn不知道那出问题了,就是不能更该value值,rn[code=C#] public static void SetCookie(string cookieName, string key, string value, DateTime? expires)rn rn HttpResponse response = HttpContext.Current.Response;rn if (response != null)rn rn HttpCookie cookie = response.Cookies[cookieName];rn if (cookie != null)rn rn if (!string.IsNullOrEmpty(key) && cookie.HasKeys)rn cookie.Values.Set(key, value);rn elsern if (!string.IsNullOrEmpty(value))rn cookie.Value = value;rn if (expires != null)rn cookie.Expires = expires.Value;rn response.SetCookie(cookie);rn rn rnrn [/code]rn调用方法:rn[code=C#] CookiesHelper.SetCookie("UserInfo", "uName", uName);rn CookiesHelper.SetCookie("UserInfo", "uPwd", uPwd);[/code]rn当存在Cookie信息时无法更改 uName, uPwd值
command.Parameters["@" + columname].Value值的问题。
写了个存储过程。需返回一个字符串,存储过程调试时,返回值是对的,如返回值为sdfsd,但当从command.Parameters["@" + columname].Value中取得返回值时,就变成了单单一个s,后面的dfsd都没有了,这是怎么回事呢?rnrn
WdatePicker 的realvalue和value值的问题
[code=javascript]$("#txtCompleteDate").focus(function() WdatePicker( skin: 'whyGreen', oncleared: function() $(this).blur(); , onpicked: function() $(this).blur(); ) )[/code]rn这个是日起输入框的脚本 rnIE版本是10rn现在的问题是我选择日期了 ,这显示的日期是对的,但是取到的值是预设的日期 rn用开发工具查看了一下 ,realvalue是我选择的,但是value值是预设的 rn这个怎么解决?
比较两个json,key值相同的情况下判断另一个json的value值是否为空(递归)
前言:作为一个Java的初学者,第一个写博客,如有不当之处请多多指教。我是在检验报文的必输项的情况下写的该方法。   import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; public class JsonTest { static String rerort = &quot;{&quot; ...
如何循环获取html的值,并拼写到json/json,求value所对应key的值
有如下html结构 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 ..... ..... ..... 标签个数不确定 要求得到如下的json {     "airportList": [     
字符串替换问题
我希望把,则不替换,这样就可以脚本跑多少次结果都相同。请问用正则表达式如何实现?rnrn假如,我要把一个目录(及子目录)的所有文件都做以上操作,是否可行,用js如何实现?rnrn谢谢!!
----=== 字符串替换问题 ===----
字符串很长,这是一部分 string a = "... G00 X-23.012 Y11.027 Z40.\r\nX-22.01Y18.I-1183.294J-2063.691\r\nX-26.353Y12.02\r\nG01X-26.353Y12.02F600\r\n ..."rnrn我用正则表达式读取X的值后进行处理,如 -23.012+1 = -22.012 ; 再想把-22.012替换掉原来的-23.012怎么做,不能用a.replace(..),请帮帮忙阿
字符串替换的问题
我有两个字符串A=“abcd000def000cde000”,B="111"rn把A中的所有“000”换成B的“111”rn请不要用replaceall来完成,能帮我自己写个函数吗,非常的感谢,我很急。rn
字符串替换问题?
字符串str=AA|BB|cc|DD,如果值为1,替换第一个'|'到第二个'|'这之间的内容,如果值为2,替换第二个'|'到第三个'|'这之间的内容,以此类推,如何替换?
字符串替换问题!!!
此程序是将指定位置的字符串替换成键盘输入的字符串,但是得不到正确答案,请各位大哥指教!rn#includern  void main()rnrn char *strrep(char *str,char *str1,int num);rn char string[100];rn char string1[50];rn int num;rn gets(string);rn gets(string1);rn printf("where:");rn scanf("%d",&num);rn strrep(string,string1,num);rn printf("%s",string);rnrnchar *strrep(char *str,char *str1,int num)rnrn for(int i=0;str1[i]!='\0';i++)rn str[num+i-1]=str[i];rn return str;rnrnvoid main()rnrn char *strrep(char *str,char *str1,int num);rn char string[100];rn char string1[50];rn int num;rn gets(string);rn gets(string1);rn printf("where:");rn scanf("%d",&num);rn strrep(string,string1,num);rn printf("%s",string);rnrnchar *strrep(char *str,char *str1,int num)rnrn for(int i=0;str1[i]!='\0';i++)rn str[num+i-1]=str[i];rn return str;rnrn
字符串替换问题?
String s ="select *from JobInviteInfo t where t.exp_date='2010-03-11 12:25:39'";rn要求把 s里面所包含的exp_date='2010-03-11 12:25:39'替换成exp_date='sysdate' ;rn希望各位用java正则实现 ! 3Q
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法