可以将其用作json对象吗?自定义字符串到json解析器
Can use this as a json object? Custom string to json parser
我正在制作这个小解析器,它本质上是用更容易输入的字符串生成json对象。如您所见,我有两个输入字段,第一个用于表名,然后下一个用作数据页。我开始的时候非常简单,所以我知道这对复杂的例子不起作用。那会晚些时候来。我发现我遗漏了一些{},但我稍后会添加这些。但基本上,我的小解析器会吐出:
{pizzas:[
size:"large";toppings:"sausage"; ]
}
但现在我很好奇,从技术上讲,这是一个工作的json对象,对吧?我的意思是var"object"。
这是el代码!
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Input like:<br/>
table: pizzas<br/>
data: size:"large";toppings:"sausage";<br/>
<form name="form1" onsubmit="getString(); return false;">
table name<input type="text" name="tableJob" id="tableJob" value='example: pizzas'><br/>
data<input type="text" name="dataJob" id="dataJob" value='example: size:"large"; toppings:"sausage";'>
<input type="submit" value="Submit">
</form>
<p id="myJson"></p>
<script>
var w, x, y, z;
function getString(){
x = document.getElementById("tableJob").value; //get the table from user
y = document.getElementById("dataJob").value; //get data from user
var object = '<p>{' + x + ':[<br/>' + '  ' + y + ' ]<br/>' + '}';
document.getElementById("myJson").innerHTML = object;
}
//now add object to our json page
</script>
</body>
////////////////////////////////////////////////////////////////////////////////这是现在正确的方式:
<body>
Input like:<br/>
table: "pizzas"<br/>
data: "size":"large","toppings":"sausage",<br/>
<form name="form1" onsubmit="getString(); return false;">
table name<input type="text" name="tableJob" id="tableJob" value='"pizzas"'><br/>
data<input type="text" name="dataJob" id="dataJob" value='"size":"large", "toppings":"sausage,"'>
<input type="submit" value="Submit">
</form>
<p id="myJson"></p>
<script>
var w, x, y, z;
function getString(){
x = document.getElementById("tableJob").value; //get the table from user
y = document.getElementById("dataJob").value; //get data from user
var obj = '<p>{ ' + x + ' : [<br/>' + '  {' + y + '} ]<br/>' + '}';
document.getElementById("myJson").innerHTML = obj;
var myJsonString =
'{' + x +
':[' + '{' + y + '} ]' +
'}';
alert(myJsonString);
}
</script>
</body>
否,这不是有效的JSON。[...]
包含一个数组,该数组必须是逗号分隔的元素列表。括号中有key:value
对,它们用分号分隔。
你不使用JSON.stringify()
有什么原因吗?
您拥有的第一个对象既不是有效的JSON对象,也不是有效的JavaScript对象文字。
一个合适的JavaScript对象文字应该是这样的:
var pizzas = {
pizzas:[
{size:"large",toppings:"sausage"} ], //Notice the enclosing curlys around size and toppings.
}
其次,作为var object...
返回的对象看起来像这个
"<p>{pizzas:[<br/>  size:"large";toppings:"sausage" ]<br/>}"
它绝对不是一个对象,而是剥离HTML:
"{pizzas:[size:"large";toppings:"sausage"]}"
仍然无法生成有效的JSON对象,并且工作JSON.stringify()
也没有多大帮助,因为数组无法容纳您试图插入的键值对。
将这些封装在对象文字中会修复它,请参见上文,还可以删除数组中出现的分号。
相关文章:
- 如何使用JSON字符串中的jQuery填充下拉框
- Json字符串可以'当字符串末尾有“'时,t解码;
- jquery从2个json字符串构建一个复选框表单
- RegEx只匹配JSON字符串中最里面的数组
- json字符串的Javascript帖子:没有任何东西传入或返回
- 使用javascript在MVC视图中解析.net JSON字符串
- 用Angularjs+Typescript将GZip Json字符串解压为普通Json字符串
- 如何将表单数据传递给PHP并将json字符串返回给Javascript
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- 将JSON字符串转换为函数参数
- 在AngularJS中创建JSON字符串
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- Json字符串更改日期
- JSON字符串格式错误
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- C#JSON字符串到JavaScript数组
- 如何在JSON字符串中实现嵌套HTML
- 如何从带有多个对象的JSON字符串创建JSON对象
- 使用捕获组查找和替换json字符串中出现的所有短语