Javascript 很难将json字符串从服务器转换为数组
我从服务器上取回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.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的版本,它们可能会以不同的顺序出现。将对象视为只有相等的状态属性。如果希望大集合中的小东西有一个顺序,请将大集合设置为数组,而不是对象。我添加了另一个答案,希望对您有所帮助。