Javascript 很难将json字符串从服务器转换为数组

Javascript 很难将json字符串从服务器转换为数组,javascript,arrays,json,Javascript,Arrays,Json,我从服务器上取回json,我想让它成为一个数组,只是为了测试它是否能正常工作 JSON.parse(response.data.blocks) 我明白了: SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at contentblocks.js?KHWUmpg:87149 at <anonymous> 它可能已经被解析了! 两条线索

我从服务器上取回json,我想让它成为一个数组,只是为了测试它是否能正常工作

JSON.parse(response.data.blocks)
我明白了:

SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at contentblocks.js?KHWUmpg:87149
    at <anonymous>
它可能已经被解析了! 两条线索

已经是一个对象了 服务器提供的内容的显示已经是一个对象。它有一个属性“块”,很可能就是你想要的

意外标记“o” 这是在向JSON.parse中输入对象而不是字符串时从JSON.parse中得到的错误

试试这个:

x={hello:3}; JSON.parse(x)

它可能已经被解析了! 两条线索

已经是一个对象了 服务器提供的内容的显示已经是一个对象。它有一个属性“块”,很可能就是你想要的

意外标记“o” 这是在向JSON.parse中输入对象而不是字符串时从JSON.parse中得到的错误

试试这个:

x={hello:3}; JSON.parse(x)

对对象的属性进行排序 不要将其视为对对象进行排序,而是将属性(提取到数组中)并按属性名称进行排序

假设您的原始对象(您在问题底部列出的对象)称为
server\u return\u object

使用以下命令将块提取到对象中:

blocks = server_return_object.blocks;
现在我们需要块的键(“0”、“1”等)。使用
Object.keys()
提取它们

然后我们可以创建一个数组,每个块有一个元素。最简单的方法是
.map()
函数,它获取项目列表并对其执行函数

block_array = block_keys.map( key => blocks[key] );
现在,在
block\u array
中有一个块数组,您可以按照自己喜欢的方式对其进行排序。例如,要按照在处创建的
进行排序,可以使用

block_array.sort(function(a,b){return a.created_at > b.created_at } )
更改sort()中的函数,以返回您想要排序的任何条件。如果是对其中一个属性的简单排序,则可以对标准进行大于(或小于,以另一种方式排序)的测试,如上所示。也可以使用多个条件进行更复杂的排序。

对对象的属性进行排序 不要将其视为对对象进行排序,而是将属性(提取到数组中)并按属性名称进行排序

假设您的原始对象(您在问题底部列出的对象)称为
server\u return\u object

使用以下命令将块提取到对象中:

blocks = server_return_object.blocks;
现在我们需要块的键(“0”、“1”等)。使用
Object.keys()
提取它们

然后我们可以创建一个数组,每个块有一个元素。最简单的方法是
.map()
函数,它获取项目列表并对其执行函数

block_array = block_keys.map( key => blocks[key] );
现在,在
block\u array
中有一个块数组,您可以按照自己喜欢的方式对其进行排序。例如,要按照在
处创建的
进行排序,可以使用

block_array.sort(function(a,b){return a.created_at > b.created_at } )

更改sort()中的函数,以返回您想要排序的任何条件。如果是对其中一个属性的简单排序,则可以对标准进行大于(或小于,以另一种方式排序)的测试,如上所示。使用多个条件也可以进行更复杂的排序。

请不要着急,如果您在JSON中的位置出现错误
意外的标记o
-请注意,检查您的JSON,不要急于使用其他解决方案。当您在没有
块的情况下尝试
JSON.parse(response.data)
时会发生什么?请不要着急,如果您在位置处遇到错误
JSON中意外的标记o
-请注意,检查您的JSON,不要急于寻求其他解决方案。当您尝试在没有
块的情况下使用
JSON.parse(response.data)
时会发生什么?您能帮我找出如何按键对该对象进行排序吗?这正是我真正想要做的,但是使用sort函数失败了,因为当我第一次使用javascript时,这个函数让我非常困惑。对象的属性没有顺序。根据您列出它们的方式以及JS的版本,它们可能会以不同的顺序出现。将对象视为只有相等的状态属性。如果希望大集合中的小东西有一个顺序,请将大集合设置为数组,而不是对象。我添加了另一个答案,希望能对您有所帮助。您能帮我找出如何按键对该对象进行排序吗?这正是我真正想要做的,但是使用sort函数失败了,因为当我第一次使用javascript时,这个函数让我非常困惑。对象的属性没有顺序。根据您列出它们的方式以及JS的版本,它们可能会以不同的顺序出现。将对象视为只有相等的状态属性。如果希望大集合中的小东西有一个顺序,请将大集合设置为数组,而不是对象。我添加了另一个答案,希望对您有所帮助。