2014-09-25 111 views
-3

我是JSON的初学者,我对此很困惑。Json到Html(没有第三方库)

我必须将任何有效的JSON字符串转换为有效的HTML字符串,才能在Web上可视化JSON。

jsonToHtml(“[{‘x’: 1, ‘b’: 2}, {‘x’: 100, ‘b’: 200}]") => “x:1x:100" 

谢谢你们。

+1

你想做什么? – BlaShadow 2014-09-25 22:40:40

+0

输入:[{'x':1,'b':2},{'x':100,'b':200}] 输出:x:1x:100 输入是一个通用且有效的JSON。输出应该是一个有效的HTML – 2014-09-25 23:14:20

+0

“x:1x:100”不是有效的HTML,'b'字段去了哪里?目前还不清楚你想要这个功能的输出。 – 2014-09-26 03:15:34

回答

0

首先,您的单引号和双引号字符存在一些问题。它看起来可能是一个复制和粘贴问题。您所展示的JSON是创建对象数组的可接受语法,只需删除包装双引号即可。

使用Chrome的JavaScript控制台粘贴以下:

var myVar = [{'x': 1, 'b': 2}, {'x': 100, 'b': 200}] 
// myVar now contains an array of the two objects. 
// Test it out by attempting to access one of the objects properties. 
myVar[0].b 

UPDATE

如果目标浏览器支持的ECMAScript 5,您可以使用本机JSON.parse功能。

// Your JSON 
var myJson = '[{"x": 1, "b": 2}, {"x": 100, "b": 200}]'; 
// Call our handy function that parses the JSON and set our variable with the parsed results. 
var parsedObject = parseJson(myJson); 
function parseJson(json) { 
    return JSON.parse(json); 
} 
+0

是的,这是一个复制粘贴问题。我如何解析这个[{'x':1,'b':2},{'x':100,'b':200}]到数组中?谢谢。 – 2014-09-25 22:47:26

+0

查看我的更新回答 – used2could 2014-09-26 12:29:53

0

什么this one:基于this post

function htmlEscape(str) { 
    return String(str) 
      .replace(/&/g, '&') 
      .replace(/"/g, '"') 
      .replace(/'/g, ''') 
      .replace(/</g, '&lt;') 
      .replace(/>/g, '&gt;'); 
} 

var jsonString = "[{‘x’: 1, ‘b’: 2}, {‘x’: 100, ‘b’: 200}]"; 
var htmlString = htmlEscape(jsonString);