Javascript JSON vs.XML vs.SQL vs.JS-半特殊字符比赛

Javascript JSON vs.XML vs.SQL vs.JS-半特殊字符比赛,javascript,sql,sql-server,json,xml,Javascript,Sql,Sql Server,Json,Xml,我们从MS-SQL生成JSON和XML,供客户端的JS函数使用(科尔多瓦的浏览器和应用程序) JSON和SQL中“字段”的名称必须遵循某些逻辑,并且通常复合其他字段,而JS函数使用拆分来分开使用它们 到目前为止,需求是不可更改的。。。 所以我们想到了一些简单的方法,比如把名字改成某物。其他的。甚至其他的 好吧,从这里开始战斗,用符号连接名字: . => destroy the outputted JSON as it make it multilevel _ => can't be

我们从MS-SQL生成JSON和XML,供客户端的JS函数使用(科尔多瓦的浏览器和应用程序)

JSON和SQL中“字段”的名称必须遵循某些逻辑,并且通常复合其他字段,而JS函数使用拆分来分开使用它们

到目前为止,需求是不可更改的。。。 所以我们想到了一些简单的方法,比如把名字改成某物。其他的。甚至其他的

好吧,从这里开始战斗,用符号连接名字:

. => destroy the outputted JSON as it make it multilevel
_ => can't be used as already in naming convention on 
/ => introduce escape \ and JSON/XML are a mess
\ => not possible in JSON
= => breakes the XML
^ => same, XML broken
@ => same again
$ % & and so on => not even elegant, and difficult to read data
到目前为止,我们的最佳选择是:

· => so far the most elegant and working solution, but not so intuitive
这是真的吗? 你们觉得呢,伙计们?
还有其他更好的字符/符号吗,直观的,不被当作特殊字符处理,可以在SQL和JS中轻松处理,不破坏XML和JSON,并且我们在未来三个月内无需更改?

我理解正确吗?您只需要一个好看的分隔符,它不会破坏XML

你可以试试管道标志:

SELECT 'test|character' FOR XML PATH('x')
导致

<x>test|character</x>
test |字符

更多的是JSON,但我采用了破折号。它们链接到我的类,并使命名约定更具可读性

Select [Ugly-Field-Name]=25
      ,[Another-Ugly]  ='Some Name' 
 For  XML PATH('row')
返回

<row>
  <Ugly-Field-Name>25</Ugly-Field-Name>
  <Another-Ugly>Some Name</Another-Ugly>
</row>
返回

Entity  Attribute       Value
25      Another-Ugly    Some Name
最后,我的JSON生成器返回(字段名总是转换成小写)


很难理解你的具体问题是什么。提供一个更好的描述,说明你想做什么我认为具体的问题是“需求不可更改”:-)你说这破坏了XML,其他破坏了JSON,等等。。。当然,这些字符可以正确转义,这样它们就不会“破坏”您的文件格式?让我解释得更好,让我解释得更好,我会尝试。。。我们的目标是直接从SQL server生成XML和JSON,供JS使用。当然我可以对符号进行转义,但是当我们在构建“标准”时,我们尝试使用不需要转义的符号,你能想象两个点、点和反斜杠应该在URL中转义吗?http“:”/\/\www“'IBelieveThatNot.”com/\WTF为了提高可读性,我们的目标是使用一个不会增加噪音的字符:This.is.easer.to.read This&is&Not&easyinJS在处理响应时使用下划线允许点表示法,使其更清晰。不确定你的,但我的js IDE将自动建议使用点,但不使用
['string-name']
@charlietfl是的,但例如$.go.application[“banner logo”]返回“App\u Images/logo\u Micro.png”,但我可以使用宏替换aa=“banner logo”$。go.application[aa]但它的优点是什么?它增加了一个额外的步骤,更容易编写dot,并使代码更加智能化。。。仍然可以回退到
[]
方法needed@charlietfl通过可重用函数和通用数据模式减少代码。这对我来说很有用。我自己还是有两种选择…当你有选择时,在js属性名中添加特殊字符似乎毫无意义是的,没错,一个漂亮的分隔符,它不会破坏XML,也不会破坏JSON,而且在js中是无痛的,管道问题:列名“i | Customer | Country”包含FOR XML;“|”所需的无效XML标识符(0x007C)是出现故障的第一个字符。
Entity  Attribute       Value
25      Another-Ugly    Some Name
{"status": {"successful":true,"timestamp":"2016-52-03 19:52:27 GMT","rows":1,"runtime_ms":0.15},"results": [{"ugly-field-name":25,"another-ugly":"Some Name"}]}