怎么把json数组里的某一项的value转化为字符串格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把json数组里的某一项的value转化为字符串格式相关的知识,希望对你有一定的参考价值。

"["cnName":"学生1","enName":"student1","aliasName":"student","dataType":1,"description":"1","children":["cnName":"老师1","enName":"teather1","aliasName":"teather1","dataType":1,"description":"1","nodeKey":2,"cnName":"老师2","enName":"teather2","aliasName":"teather2","dataType":2,"description":"2","nodeKey":3],"nodeKey":1]"
比如把里面的dataType的value那个1 转化为字符串
5块钱了 速度了

先把json转数组,for循环后直接.dataType就有了
var jsonObj = JSON.parse(jsonStr)
console.log(jsonObj)
var jsonStr1 = JSON.stringify(jsonObj) console.log(jsonStr1+"jsonStr1")
var jsonArr = [];
for(var i =0 ;i < jsonObj.length;i++)
jsonArr[i] = jsonObj[i];

console.log(typeof(jsonArr))
那个说php简直来搞笑的
这种问题感觉在网上百度一下到处都是答案,还有花钱,上面代码就是百度的追问

大神 能把我上面写的json转化写一下么?

追答

代码不是写了吗 JSON.parse(jsonStr),直接上网百度一下什么意思,或者直接用上面的代码,返回结果不是都打印了吗

追问

不管用 这种方法只能改变这个json数组的key value的类型改变不了

追答

你要干嘛,是为了传值到后台么。js数组里面是没有int数据类型,都是object,非要转字符的话 +“”就是字符串了。js是弱数据类型语言没有强制的数据类型定义

参考技术A 什么语言来进行这个操作,要是php的话我还是可以帮你一下追问

js的大兄弟

追答

var strJson = "["cnName ":"学生1 ","enName ":"student1 ","aliasName ":"student ","dataType ":1,"description ":"1 ","children ":["cnName ":"老师1 ","enName ":"teather1 ","aliasName ":"teather1 ","dataType ":1,"description ":"1 ","nodeKey ":2,"cnName ":"老师2 ","enName ":"teather2 ","aliasName ":"teather2 ","dataType ":2,"description ":"2 ","nodeKey ":3],"nodeKey ":1]";
var objJson = JSON.parse(strJson); //先转对象
var childrenJson = objJson.children; //取出你要格式化的集合
for (var key in childrenJson)
for (var k in childrenJson[key])
if (k === "dataType")
childrenJson[key][k] = childrenJson[key][k].tostring();



这样应该可以吧,但是你这个json串好像有问题?

本回答被提问者采纳

通过key 寻找数组内对象的某一项

function parseJson(jsonObj, value, key = ‘code‘) {
      const index = jsonObj.findIndex(item =>
        item[key] == value
      )
      if (index) return jsonObj[index]
}

var array = [
      {
        code: 1,
        value: ‘b‘
      },
      {
        code: 2,
        value: ‘a‘
      },
      {
        code: 3,
        value: ‘c‘
      },
      {
        code: 4,
        value: ‘d‘
      },
      {
        code: 5,
        value: ‘e‘
      }
    ]

    console.log(parseJson(array, 5)) 

技术图片

 

 有时候不一定要用万能方法,最合适的方法才是好的方法,

改数据内无多层嵌套,若存在则用递归法,参考:https://www.cnblogs.com/likewpp/p/11770772.html

以上是关于怎么把json数组里的某一项的value转化为字符串格式的主要内容,如果未能解决你的问题,请参考以下文章

关于forEach方法能否改变数组中每一项的值

微信小程序用 setData 方法修改 data 中对象数组某一项的属性值

通过key 寻找数组内对象的某一项

如何实现DropDownList控件的某一项只能被选择一次?

vue的data里面的值是数组时,在更改其某一项的时候,怎么触发视图的重新渲染?

在vb net中,如何猎取和修改已选定的某一项的值?