当前位置: 首页 > 面试题库 >

需要将JSON键值对转换为标准数组

乌翰学
2023-03-14
问题内容

我正在使用jQuery的parseJSON()函数将json字符串插入变量中。问题是,它正在将我的数据变成一个对象,而不是一个二维数组。例如,

myData = $.parse(JSON(data));
myData.name// = "Bob"

问题是,“名称”不应该是 (假设这是正确的术语)。相反,它应该是:

myData[0] // = "name"
myData[1] // = "Bob"

我将如何转换呢?还是有一个不同于使用for循环遍历数组索引的方法(但仍然可以像在2d数组中一样,以字符串形式访问键和值)。

编辑:这是一些正在使用的json(请注意,它的使用时间更长)。这就是“数据”的含义

{"feat_3":"4356","feat_4":"45","feat_5":"564","feat_6":"7566"}

问题答案:

对数据进行反序列化后(例如,具有myData对象),可以使用遍历其键for..in,然后构建一个组合键和值的数组:

var myData, dataArray, key;
myData = $.parse(JSON(data));
dataArray = [];
for (key in myData) {
    dataArray.push(key);         // Push the key on the array
    dataArray.push(myData[key]); // Push the key's value on the array
}

由于myData是对in中的JSON反序列化的结果data,我们知道这myData是一个通用对象(例如,只是一个a {}而不是a new Foo或类似的东西),所以我们甚至不需要hasOwnProperty。如果我们不知道,我们只是想列举myData自己的
键和值,我们将增加一个hasOwnProperty检查:

var myData, dataArray, key;
myData = $.parse(JSON(data));
dataArray = [];
for (key in myData) {
    if (myData.hasOwnProperty(key)) {
        dataArray.push(key);         // Push the key on the array
        dataArray.push(myData[key]); // Push the key's value on the array
    }
}

在您的情况下,没有理由这样做,除非有人一直在嘲笑Object.prototype(在这种情况下,将它们带到树林的后面,给他们严重的藏身处,然后让他们写下“我不会为之反复Object.prototype数百次黑板),但每次使用时for..in,最好停下来思考以下问题:A)该对象保证是香草的,B)如果不是,则只需要它自己的属性,还是想要它继承的属性?



 类似资料:
  • 问题内容: 我需要将AWS DYNAMODB JSON转换为标准JSON对象。因此我可以从DynamoDB JSON中删除数据类型,例如: 在DYNAMODB JSON中: 我在Javascript中找到了一个不错的工具,但是Java中是否有任何工具可以做到这一点? 问题答案: 以下是将Dynamo JSON转换为标准JSON的完整代码:

  • 如何获取groovy映射的键/值对值并循环到groovyJSON数组元素中?。 例如: 输入: def childmap = ["data1": "123 "," data2": "234 "," data3": "456"] def儿童地图2=["data4":"123","data5":"234","data6":"456","date7":"676"] def父母地图=["Key1":"Va

  • 问题内容: 我有一个从包含重复密钥的数据库中获取的JSON字符串。我想通过将重复键的值组合到数组中来删除重复键。 例如 输入项 输出量 实际数据是一个可能嵌套的大文件。我不会提前知道有多少对。 我需要为此使用Java。org.json由于重复的键而引发异常,gson可以解析该字符串,但是每个重复的键都会覆盖最后一个。我需要保留所有数据。 如果可能的话,我想不编辑任何库代码就这样做 问题答案: 从今

  • 我试图将下面的Json数组转换为特定的Java对象。 编辑:更新了正确的JSON结构 下面是我目前使用的对象映射器: 然而,我在尝试反序列化com时出错。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法反序列化来自数组值

  • 我已经在我的计算机上实现了一个数据结构,现在我正试图将它移植到我的android应用程序中。我打开一个原始的资源并获取一个,但我需要获取一个: 上面的代码引发以下异常,因为InputStream无法强制转换为FileInputStream,但这正是我需要的: 我所有的代码都是使用这个和一个FileInputStream构建的,所以我想继续使用它。从然后将其转换为? 在一些相关的帖子中,我无法为我的

  • 我试图将JSON数组转换为具有指定键/值对的元素是对象