2012-12-03 121 views
1

你好我工作的项目是我必须更新填充JSON数据的数据库。然而,这个数据看起来像这样:JSON数据填充斜杠

{\“Id \”:\“1 \”,\“Sounding \”:\“1.075 \”,\“Ullage \”:\“0 \ \ “完全\”:\ “100 \”,\ “CapacityM \”:\ “3.918 \”,\ “CapacityMT \”:\ “3.918 \”,\ “LCG \”:\ “3.779 \”,\” TCG \ “:\” 0 \”,\ “VCG \”:\ “2.39 \”,\ “FSM \”:\ “4.492 \”}

然而,如果我的原始数据转换为JSON格式(从CSV文件),它似乎是这样的:

{ “ID”:1, “听起来”:1.075, “缺量”:0.000, “FULL”:100.000, “容量”:3.918,“容量“:3.918,”LCG“:3.779,”TCG“:0.000,”VCG“:2.390,”FSM “:0.000}

如何添加所有像第一个那样的斜杠,以便它是正确的格式?我真的需要他们吗?

+1

你使用什么语言? – Isaac

+0

我有一个.js文件,其中的数据存储像我上面张贴(第一个块)。但是,我需要使用我在.CSV文件中获得的新数据来更新此数据。由于程序正在使用它,因此它需要采用相同的格式。然而,如果我将它转换为JSON,它会出现在第二个块中。 – user1873548

+1

你可以发布你的输入样本,你如何将其转换为json? – Isaac

回答

0

这看起来像是某些编程语言的字符串/文本字面格式的数据已被转义。

0

如果我没有误解任何东西,我想你可以用json_parse来解决这个问题。

下面是一个例子:http://jsfiddle.net/mqchen/yEJdq/

json_parse(data, function(key, value) { 
    var floatVal = parseFloat(value); 
    return !isNaN(floatVal) && isFinite(value) ? floatVal : value; 
}); 

它使用json_parse但将它发送它解释看起来像数字作为数字串的委托。

编辑:这里是一个版本,也将所有键大写(如果你还想要那个):http://jsfiddle.net/mqchen/yEJdq/2/

+0

非常感谢,但也许是一个非常愚蠢的问题,我将如何能够使用此代码? – user1873548

+0

您需要将您收到的数据(包含所有斜杠的数据)作为字符串放入变量中。你可以命名变量“data”。然后调用json_parse函数,将数据变量作为第一个参数,将委托(将字符串转换为数字的函数)作为第二个参数。查看为您制作的示例:http://jsfiddle.net/mqchen/yEJdq/ – mqchen

1

貌似在数据库中的字符串的JavaScript(或C或Java的,你应该检查)字符串转义。最简单的方法是使用org.apache.commons.lang3.StringEscapeUtils.escapeEcmaScript()org.apache.commons.lang.StringEscapeUtils.escapeJavaScript()方法。还要检查这些类的其他方法。

另一种方法是将第一个JSON作为字符串存储在第二个临时JSON对象中,然后将第二个JSON对象转换为字符串,然后获取仅包含第一个JSON对象的转义字符串值的子字符串(我认为会是第二个JSON字符串中第三个和最后一个双引号之间的部分...)。有点古怪,但避免添加额外的库。