我有一个字符串对象,如下所示: -
[{"TradeId":123423,"TradeDate":"2017-12-11T18:30:00.000Z","Commodity":"AL","Side":"Buy","Qty":100,"Price":2000,"Location":"NY"},
{"TradeId":123428,"TradeDate":"2017-12-15T18:30:00.000Z","Commodity":"AL","Side":"Buy","Qty":100,"Price":2000,"Location":"NY"}]
我想将其用作可以调用地图的数组。 如何实现这一目标。
我做了JSON.parse()
这个字符串,但是我收到一条错误声明: -
Unexpected token o in JSON at position 1
当我这样做时
JSON.parse('[{"TradeId":123423,"TradeDate":"2017-12-11T18:30:00.000Z","Commodity":"AL","Side":"Buy","Qty":100,"Price":2000,"Location":"NY"},
{"TradeId":123428,"TradeDate":"2017-12-15T18:30:00.000Z","Commodity":"AL","Side":"Buy","Qty":100,"Price":2000,"Location":"NY"}]')
注意quotes ('')
,从我的节点终端,它可以工作!!!
请注意我从websocket获取此字符串。
我的最终目标是将此字符串用作可以使用地图操作的数组
socket.on('getdata', (msg) => {
console.log("getdata",msg);
//TradesActions.loadTrades(msg)
myStore.dispatch(TradesActions.loadTrades(JSON.parse(msg.toString())))
})
在上面发送之后(react + redux),它使用的是一些组件如下: -
trades.map((trade, index) => {...})
谢谢, 阿玛尔
答案 0 :(得分:3)
JSON.parse
假设你传递给它的是一个字符串。
您的数据已经是一个对象。 JSON.parse
会将所述对象强制转换为字符串,然后尝试解析它。基本上,这样的事情:
JSON.parse(obj.toString())
将对象转换为字符串,返回"[object Object]"
现在猜猜位置1" 错误中的"意外标记o
从哪里获得"o"
?
TL; DR:不要使用JSON.parse
。您的数据已经是一个对象。
答案 1 :(得分:0)
我能够解决这个问题。
问题不在这里,而是在使用amqplib从RabbitMQ获取消息的代码部分。
收到消息后,我做了JSON.parse(msg.content)
而不是msg.content.toString()
,它解决了问题!
非常感谢大家的时间和精力。
答案 2 :(得分:-1)
您可以使用
将第一个字符串对象转换为Javascript字符串#macro(sort $array)
#set($size=$array.size())
#set($index1=0)
#foreach($element1 in $array)
#set($index2=0)
#set($minElement=$element1)
#set($minElementIndex=$index1)
#foreach($element2 in $array)
#if($index2>$index1)
#if($minElement.name.compareTo($element2.name)>0)
#set($minElement=$element2)
#set($minElementIndex=$index2)
#end
#end
#set($index2=$index2+1)
#end
#set($temp=$array.get($index1))
#set($junk=$array.set($index1, $minElement))
#set($junk=$array.set($minElementIndex, $temp))
#set($index1=$index1+1)
#end
#end
比之后 -
vat jsonString = JSON.stringify([{"TradeId":123423,"TradeDate":"2017-12-11T18:30:00.000Z","Commodity":"AL","Side":"Buy","Qty":100,"Price":2000,"Location":"NY"},{"TradeId":123428,"TradeDate":"2017-12-15T18:30:00.000Z","Commodity":"AL","Side":"Buy","Qty":100,"Price":2000,"Location":"NY"}]);