使用javascript变量代替json文件

时间:2013-09-22 22:55:31

标签: javascript jquery json

这里我有一个声明:

 <div id="timeline-embed"></div>
      <script type="text/javascript">
        var timeline_config = {
         width: "100%",
         height: "100%",
         debug: true,
         rows: 2,
         source: 'Timeline/example_json.json'
        }
      </script>
      <script type="text/javascript" src="Timeline/compiled/js/storyjs-embed.js"></script>

所以我现在想要source: 'Timeline/example_json.json'来使用

类似的东西:

source: '{
    "timeline":
    {
        "headline":"Sh*t People Say",
        "type":"default",
        "text":"People say stuff",
        "startDate":"10/4/2011 15:02:00",
        "date": [
            {
                "startDate":"10/4/2011 15:10:00",
                "endDate":"10/4/2011 15:55:00",
                "headline":"prvo",
                "text":"<p>dddddddddddddddd dd</p>",
                "asset":
                {

                    "caption":"yessss"
                }
            },
            {
                "startDate":"10/4/2011 17:02:00",
                "endDate":"10/4/2011 18:02:00",
                "headline":"drugo da da",
                "text":"<p>In true political fashion, his character rattles off common jargon heard from people running for office.</p>",
                "asset":
                {
                    "media":"http://youtu.be/u4XpeU9erbg",
                    "credit":"",
                    "caption":""
                }
            }
        ]
    }
}'

但不起作用。我真的不知道究竟什么是探测器......请帮助。

所以这是真正的Timeline插件,这个插件需要JSON作为源代码,但有没有办法用Javascript变量来改变源代码?

2 个答案:

答案 0 :(得分:1)

你写这个的方式,“timeline_config.source”的值是一个String,而不是一个“可用的”Javascript对象。

您可能需要使用JSON.parse()将字符串转换为对象。所以添加这行代码作为第一行的最后一行&lt;脚本&gt;块。

timeline_config.source = JSON.parse(timeline_config.source)

或者,正如评论中所指出的,你可以简单地删除字符串周围的单引号,它本身就是一个JS对象。

答案 1 :(得分:1)

尝试删除'字符串分隔符,所以它说

source: {
     "timeline": { ... }
},

这样它就是一个JS对象,而不是一个字符串。