如何将json字符串转换为javascript数组?

如何将json字符串转换为javascript数组?,javascript,arrays,json,Javascript,Arrays,Json,已搜索,但未得到正确的解决方案 我有一个来自服务器的json字符串。我想将字符串转换为javascript数组,以便根据hotel_name、'minPrice'、'hotel_star'对数据进行排序 下面是JSON字符串 {    "00001065": {       "hotel_id": "00001065",       "hotel_name": "The Infantry Hotel",       "hotel_star": "3",       "image": "",

已搜索,但未得到正确的解决方案

我有一个来自服务器的json字符串。我想将字符串转换为javascript数组,以便根据hotel_name、'minPrice'、'hotel_star'对数据进行排序

下面是JSON字符串

   {
   "00001065": {
      "hotel_id": "00001065",
      "hotel_name": "The Infantry Hotel",
      "hotel_star": "3",
      "image": "",
      "location": "Infantry Road",
      "minPrice": "2,497",
      "RoomTypes": [
         {
            "RoomTypeName": "Deluxe King / Twin Double",
            "AvailableQuantity": "4",
            "RatePlanInclusions": "Complimentary Wi-Fi Internet",
            "price": "2,497"
         },
         {
            "RoomTypeName": "Superior Double",
            "AvailableQuantity": "2",
            "RatePlanInclusions": "Breakfast",
            "price": "3,496"
         }
      ]
   },
   "00001080": {
      "hotel_id": "00001080",
      "hotel_name": "Hotel Ramanashree",
      "hotel_star": "3",
      "image": "",
      "location": "Richmond Road",
      "minPrice": "3,879",
      "RoomTypes": [
         {
            "RoomTypeName": "Executive Room",
            "AvailableQuantity": "25",
            "RatePlanInclusions": "Breakfast",
            "price": "3,879"
         },
         {
            "RoomTypeName": "Club Room",
            "AvailableQuantity": "25",
            "RatePlanInclusions": "Breakfast",
            "price": "4,604"
         }
      ]
   },
   "00003757": {
      "hotel_id": "00003757",
      "hotel_name": "The Paul ",
      "hotel_star": "5",
      "image": "",
      "location": "Domlur Layout",
      "minPrice": "6,216",
      "RoomTypes": [
         {
            "RoomTypeName": "Executive Suite - Two  Bedrooms Suite",
            "AvailableQuantity": "4",
            "RatePlanInclusions": "Complimentary Wi-Fi Internet, Breakfast",
            "price": "8,942"
         },
         {
            "RoomTypeName": "Premier Suite - Two  Bedrooms Suite",
            "AvailableQuantity": "2",
            "RatePlanInclusions": "Complimentary Wi-Fi Internet, Breakfast",
            "price": "10,718"
         },
         {
            "RoomTypeName": "Studio Suite - One  Bedroom Suite",
            "AvailableQuantity": "4",
            "RatePlanInclusions": "Complimentary Wi-Fi Internet, Breakfast",
            "price": "6,216"
         }
      ]
   }
}

var myObject=JSON.parsejsonString

无需将json对象转换为数组进行排序。 您可以对JSON本身进行排序

function sortResults(prop, asc) {
    arr = arr.sort(function(a, b) {
        if (asc) return (a[prop] > b[prop]);
        else return (b[prop] > a[prop]);
    });
}

我已经用您的Json创建了一个工作示例。单击标题查看本例中的排序:

这是非常标准的JavaScript。也许你应该先试试JSON教程?这是一个很好的开始

您可以解析JSON并将其转换为数组

// Converts an object into an array
function objectToArray(obj) {
    var array = [];
    for (prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            array.push(obj[prop]);
        }
    }
    return array;
}

var obj = JSON.parse(json_string);
var arr = objectToArray(obj);

现在,您可以使用自己的compareFunction对数组进行排序。

您可以这样做:

var o = JSON.parse("...");

var asArray = Object.keys(o).map(function(k) { return o[k] });

asArray.sort(function(a, b) {
    if(a.hotel_name > b.hotel_name) return  1;
    if(a.hotel_name < b.hotel_name) return -1;
    return 0;
});

这个问题是迄今为止最受欢迎的重复问题。请使用右上角搜索与您的问题标题完全相同的答案可能重复@MarsOne您提到的问题与我的问题不匹配,因为我的JSON字符串格式不同。我已经查过那个问题了。请检查这两个问题并试着区分它们。@MarsOne如果你认为这是一个重复的问题,我会要求你根据另一个问题的答案给我一个解决方案。我知道巴迪。我也是一个开发者。我解决不了这个问题。这就是为什么我把问题贴在这里。试过了。如果我尝试对数据进行排序,它会说myObject.sort不是一个函数。你猜怎么着,因为它不是arary。它是一个物体。如果您想要一个数组,则应该具有字符串[].var a=JSON.parse'[1,2,3]';排序;我的JSON字符串格式与您在示例中提到的不同。因此,请使用JSON.parse,然后通过javascript转换为字符串。但将字符串转换为对象正是我向您展示的方式。我也试过了。排序不适用于变量“arr”。这是一个很好的示例,但OP询问如何将json对象转换为数组,以便对其进行排序。您的代码显示了如何对数组进行排序。不是如何将json对象转换为@RolwinC中所示的数组,它只需稍加修改就可以工作。谢谢