Javascript 如何在Json数组中获取值并分别使用它们

Javascript 如何在Json数组中获取值并分别使用它们,javascript,jquery,json,Javascript,Jquery,Json,我有一个JSON,我想在数组部分分离每个字段,然后我想分别使用每个字段,并将它们放在单独的数组中 例如,我的数组中有两个部分,我想将第一部分划分为房间1,第二部分划分为房间2 我必须将Json发送到我的第二页,格式为room1和Room2。我不知道我该怎么做 我的json现在是这样的: "rooms": [ { "adultcount": "1", "childcount": "1,1" }, { "adultcount": "1",

我有一个JSON,我想在数组部分分离每个字段,然后我想分别使用每个字段,并将它们放在单独的数组中

例如,我的数组中有两个部分,我想将第一部分划分为房间1,第二部分划分为房间2

我必须将Json发送到我的第二页,格式为room1和Room2。我不知道我该怎么做

我的json现在是这样的:

"rooms": [
    {
      "adultcount": "1",
      "childcount": "1,1"
    },
    {
      "adultcount": "1",
      "childcountandage": "0 "
    }
]
但我想这样改变它:

"rooms": [
    {
        "rooms1": {
            "adultcount": "1",
            "childcount": "1,1"
        }
    },
    {
        "rooms2": {
            "adultcount": "2",
            "childcount": "10,1"
        }
    }
]
然后我需要使用它们。 如何使用jquery实现这一点

没有必要更改json代码,我只是编写了一个新的json示例来更好地定义

这是我的密码:

$( document ).ready(function() {
var research={"rooms":[{ "adultcount":"1","childcount":"1,1" },{ "adultcount":"1","childcountandage":"0 " }] }
var adultcount = research.rooms[0].adultcount;
var childcount = research.rooms[0].childcount;

});

由于您有一个数组,要将其生成一个对象,并且属性名似乎是数组中的索引,因此可以使用基本数组。reduce:

var房间=[
{“成人计数”:“1”,“儿童计数”:“1,1”},
{“成人计数”:“2”,“儿童计数”:“10,1”}
];
var roomsMap=房间.reduce(功能(地图、房间、索引){
地图[‘房间’+(索引+1)]=房间;
返回图;
}, {} );
var otherRoomsMap=rooms.map(功能(房间、索引){
var包装器={};
包装物[‘房间’+(索引+1)]=房间;
返回包装器;
} );
控制台日志(roomsMap);

控制台日志(otherRoomsMap)您可以使用循环访问json数组

$.each(research, function (key, value) {
    var adultcount = value.adultcount;
    var childcount = value.childcount;
    console.log("Adult count is:"+value.adultcount);
    console.log("Child count is:"+value.childcount);
});
试试这个:

var research={"rooms":[{ "adultcount":"1","childcount":"1,1" },{"adultcount":"1","childcountandage":"0 " }] };

var newResearch = {"rooms": []};

research.rooms.forEach(function(r) {
    newResearch.rooms.push({"room1": r[0], "room2": r[1]});
});

console.log(newResearch);

您需要将第一个JSON转换为第二个JSON吗?@KresimirPendic我必须以room1和room2的格式将JSON发送到我的第二个页面。我不知道该怎么做。您要转到的结构无效。看起来你把大括号
{
放错地方了。我想用房间1和房间2分开阵列的每个部分@phuzi@inaz我已经更新了您的问题,以显示有效的结构。此代码对我无效。当我提醒roomsMap时,它返回[object]。您需要的确切输出是什么,因为如问题中所述,它的语法无效。因为我看到您希望在
“room1”中使用以下内容:{“adultcount”:0,“childcount”:0}
,所以我想您需要一个对象,每个房间都是一个属性,因此可以使用
roomsMap['room1']
访问第一个文件室。向对象发出警报将始终显示这一点,请尝试对该对象进行stingfiying或使用控制台对其进行检查。因此
警报(JSON.stringify(roomsMap));
或只是普通的
控制台.log(roomsMap)
在任何调试工具中。如果总是返回除console.log之外的objectobjectobject,那么如何获取值呢?我想从房间1中获取chidcount1,并将其添加到一个变量中。
var childrenInRoom1=roomsMap.room1.childcount;
这里的内容基本上是将数组转换为hashmap,这样就不必搜索一直搜索数组以找到正确的房间。因为现在所有东西都是对象,所以您可以像访问任何其他对象属性一样访问它。让我们来看看。我不想访问它们,我想将数组与它拥有的每个部分分开。例如,房间1、房间2、房间3……为此,您可以在loo之外初始化计数变量p,然后用room表示该数字,这样它将是room1,room2…然后分配该变量中的值,如果你想要在数组中,那么你可以推入一个数组。不要忘记在每次迭代中增加计数。Rakesh,计数等于数组中的索引+1。不需要额外的变量。它返回[object object]。