在具有多个对象的字符串上使用eval

时间:2013-03-28 15:42:16

标签: php javascript dynamic eval

如何将以下字符串评估为多个对象?目前它只是做第一个然后忽略其余的,忽略PHP,这是通过PHP生成的,这是我需要评估它的原因,以便我可以使用它作为jQuery插件的选项。

            {
                latLng:['.$result->lat.','.$result->lon.'], 
                options:
                {
                    shadow: 
                    {

                        url: "'.BASE_URL.'css/png/markerBg.png",
                        scaledSize: 
                        {
                            width:40,
                            height:43.5
                        }
                    },
                    icon: 
                    {
                        url: "'.$result->user->profileImage.'",
                        scaledSize: 
                        {
                            width:32,
                            height:32
                        },
                        anchor: 
                        {
                            x: 16,
                            y: 40
                        }

                    }

                }

              },
            {
                latLng:['.$result->lat.','.$result->lon.'], 
                options:
                {
                    shadow: 
                    {

                        url: "'.BASE_URL.'css/png/markerBg.png",
                        scaledSize: 
                        {
                            width:40,
                            height:43.5
                        }
                    },
                    icon: 
                    {
                        url: "'.$result->user->profileImage.'",
                        scaledSize: 
                        {
                            width:32,
                            height:32
                        },
                        anchor: 
                        {
                            x: 16,
                            y: 40
                        }

                    }

                }

              },
            {
                latLng:['.$result->lat.','.$result->lon.'], 
                options:
                {
                    shadow: 
                    {

                        url: "'.BASE_URL.'css/png/markerBg.png",
                        scaledSize: 
                        {
                            width:40,
                            height:43.5
                        }
                    },
                    icon: 
                    {
                        url: "'.$result->user->profileImage.'",
                        scaledSize: 
                        {
                            width:32,
                            height:32
                        },
                        anchor: 
                        {
                            x: 16,
                            y: 40
                        }

                    }

                }

              }

2 个答案:

答案 0 :(得分:3)

我会避免做eval - JSON.parse()更安全。由于看起来对象已经以逗号分隔,因此您应该能够将其转换为数组并对其进行解析。如,

var objectArray = JSON.parse('[' + objectString + ']');

objectString的值与您粘贴的值相同。 objectArray现在将成为包含每个对象的数组。

答案 1 :(得分:0)

使用JSON.parse会不会更容易吗?