Questions tagged «json»

JSON(JavaScript对象表示法),又称XML的免费替代品,是一种受JavaScript对象常量启发的轻量级数据交换格式。它通常与JavaScript,Ajax和RESTful Web服务一起使用,但完全与语言无关。

6
是说“ JSON对象”多余吗?
如果JSON代表JavaScript对象表示法,那么当您说JSON对象时,您不是真的在说“ JavaScript对象表示法对象”吗? 说“ JSON字符串”会更正确吗? 还是简单地说JSON更正确?(如“这两个服务在它们之间传递JSON”中所述。)

5
JSON的XSLT等效项
我对寻找(或必要时开发)JSON的XSLT等效项感兴趣。 由于没有发现任何内容,我正在考虑使用可能的查询语言来匹配JSON路径,以便在匹配时应用模板(来自JavaScript)(可能只是按顺序检查匹配模式的数组,然后在第一个匹配的模板,尽管允许使用xsl:apply-templates等效,以使模板适用于子级)。 我知道JSONPath,JSONQuery和RQL是JSON查询语言(尽管我还不太清楚RQL是否支持绝对路径和相对路径)。关于要考虑的因素和每种方法相对优势的任何建议。
15 javascript  json  xslt 

1
为什么有人会使用multipart / form-data进行混合数据和文件传输?
我正在使用C#,正在编写的2个应用程序之间进行一些通信。我开始喜欢Web API和JSON。现在,我正在编写例程以在两个服务器之间发送包含一些文本数据和文件的记录。 根据互联网,我应该使用multipart / form-data请求,如下所示: SO问题“来自C#客户端的多部分表单” 基本上,您手动编写一个遵循如下格式的请求: Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition: form-data; name="field1" Joe Blow --AaB03x content-disposition: form-data; name="pics"; filename="file1.txt" Content-Type: text/plain ... contents of file1.txt ... --AaB03x-- 从RFC 1867复制-HTML中基于表单的文件上传 这种格式对于习惯于使用JSON数据的人来说非常令人不快。因此,很明显,解决方案是创建一个JSON请求,并对文件进行Base64编码,并最终得到如下请求: { "field1":"Joe Blow", "fileImage":"JVBERi0xLjUKJe..." } 我们可以在任何需要的地方使用JSON序列化和反序列化。最重要的是,发送此数据的代码非常简单。您只需为JSON序列化创建类,然后设置属性即可。文件字符串属性的设置很简单: using (FileStream fs = File.Open(file_path, FileMode.Open, FileAccess.Read, FileShare.Read)) { byte[] file_bytes = …

2
在MongoDB的键中插入带有`.`的JSON文档
首先,这更多的是设计问题,而不是编程问题。 我正在创建一个应用程序,在其中我必须获取现有的JSON数据并将其插入MongoDB。我发现某些JSON文档.的密钥中有一个句点。我在MongoDB文档中读到,在MongoDB .中不允许将句点用作键,因为它们用于查询。 我在Web应用程序中没有做很多插入,这几乎是一次插入。另外,我主要会检索整个文档,而不是查询部分文档,因为我需要获取所有数据。 因此,考虑到我的需求,关于如何存储JSON文档,我有两种选择: 在JSON中搜索密钥中的句点并转义,然后将其插入MongoDB。 将整个JSON转换为BSON格式并按原样存储它们,从而避免转义的需要,并在需要时在MongoDB外部手动解析JSON 您能否告诉我哪种设计更好,因为我无法得出结论。
14 json  mongodb 

5
如何解决JSON和Entity的循环引用问题
我一直在尝试创建一个网站,该网站将MVC和JSON用于我的表示层,以及用于数据模型/数据库的Entity框架。我的问题与将模型对象序列化为JSON有关。 我正在使用代码优先方法创建数据库。在执行代码优先方法时,一对多关系(父/子)要求子对父有引用。(示例代码是我的错字,但您会看到图片) class parent { public List<child> Children{get;set;} public int Id{get;set;} } class child { public int ParentId{get;set;} [ForeignKey("ParentId")] public parent MyParent{get;set;} public string name{get;set;} } 通过JsonResult返回“父”对象时,由于“子”具有父类的属性,因此引发循环引用错误。 我已经尝试了ScriptIgnore属性,但是无法查看子对象。在某些时候,我将需要在父子视图中显示信息。 我试图为没有循环引用的父级和子级创建基类。不幸的是,当我尝试发送baseParent和baseChild时,它们被JSON分析器读取为它们的派生类(我很确定此概念正在使我逃避)。 Base.baseParent basep = (Base.baseParent)parent; return Json(basep, JsonRequestBehavior.AllowGet); 我想出的一个解决方案是创建“查看”模型。我创建数据库模型的简单版本,其中不包含对父类的引用。这些视图模型每个都有返回数据库版本的方法和一个将数据库模型作为参数的构造函数(viewmodel.name = databasemodel.name)。尽管此方法有效,但似乎是强制的。 注意:我在这里发布是因为我认为这值得讨论。我可以利用其他设计模式来解决此问题,也可以像在模型上使用其他属性一样简单。在搜索中,我没有找到克服此问题的好方法。 我的最终目标是拥有一个很好的MVC应用程序,该应用程序充分利用JSON与服务器进行通信并显示数据。同时跨层维护一致的模型(或尽我所能)。

4
我应该在JSON响应中包含HTML标记吗?
在电子商务网站中,将商品添加到购物车时,我想显示一个弹出窗口,其中包含您可以选择的选项。假设您要订购iPod Shuffle,现在必须选择要雕刻的颜色和文字。 我希望窗口是模态的,所以我正在使用由Ajax调用填充的灯箱。现在我有两个选择: 选项1:仅发送数据,并使用JavaScript生成HTML标记 这样做的好处是,它将Ajax请求减少到了最低限度,并且没有将数据与标记混合在一起。 这样做的不好之处在于,现在我需要使用JavaScript进行渲染,而不是在服务器端使用模板引擎来进行渲染。通过使用客户端模板解决方案,我也许可以稍微清理一下方法。 选项2:发送HTML标记 这样做的好处是,我可以拥有与其余渲染任务(Django)相同的服务器端模板引擎,进行灯箱的渲染。JavaScript仅用于将HTML片段插入页面。因此,它显然将渲染留给了渲染引擎。我感觉合理。 但是由于某种原因,我不愿意在Ajax调用中混合数据和标记。我不确定是什么使我对此感到不安。我的意思是,每个网页的投放方式都一样-数据加标记-对吗?
13 mvc  django  templates  json 

3
分层数据的平面或嵌套JSON?
我已经来回切换了约5次。这个REST端点/api/tags/仅供内部使用(没有第三方客户端),我是唯一使用它的人。 我要在这两种表示形式之间做出决定: 平面 { "types":[ { "id":1, "text":"Utility" }, { "id":7, "text":"Lease Terms" }, ], "tags":[ { "id":8, "text":"Water", "type":1 }, { "id":9, "text":"Electricity", "type":1 }, { "id":5, "text":"Minimum 12 month lease", "type":7 }, { "id":17, "text":"lease negotiable/flexible", "type":7 }, ] } 它有点模块化。可以添加另一个顶层,例如“国家/地区”而不会破坏兼容性。 巢状 { "1":{ "text":"Utility", "tags":{ "8":{ "text":"Water" …
12 rest  api-design  json 

3
在JSON密钥中使用连字符是不好的做法吗?
我看到很多问题都与访问使用连字符(kebab-case)的JSON密钥有关,但是现在我发现自己想知道应该在我的密钥中坚持使用camelCase还是snake_case。我知道连字符在语言之间移植时也会产生复杂的映射。我已经看到一些JSON反序列化库将这些键转换为camelCase样式。 例: var something = { "some-value": 'thing' } VS var something = { "someValue": 'thing', "some_other_value": 'thing_two' }

7
在枚举中具有特殊值“ ALL”是一种好习惯吗
我正在微服务环境中开发一项新服务。这是一个REST服务。为了简单起见,假设路径为:/ historyBooks 此路径的POST方法将创建一个新的历史记录。 假设一本历史书涵盖了一个或多个历史时期。 为简便起见,我们假设我们只有以下人类历史时代: 古 后古典 现代 在我的代码中,我想用来表示它们enum。 方法的主体(有效负载)为JSON格式,并且应包含字段名称eras。此字段是era本书涵盖的值列表。 身体可能看起来像: { "name": "From the cave to Einstein - a brief history review", "author": "Foo Bar", "eras": ["Ancient", "Post Classical", "Modern"] } 在此特定服务中,业务逻辑是: 如果输入中未提供任何时代,则认为本书涵盖了所有时代。 在API审查中,提出了一个建议:为ERAS枚举 包含另一个值ALL,以明确表明已覆盖所有时代。 我认为它有一些优点和缺点。 优点: 显式输入 缺点: 如果提供了列表中的两项,请说ALL和Ancient-从应用程序中获取什么?我想这ALL应该覆盖其他值,但这是新的业务逻辑。 如果我运行查询,对于涵盖特定时代的图书,我将如何代表涵盖所有时代的图书?如果ALL还用于输出(使用相同的逻辑),则用户有责任将其解释ALL为["Ancient", "Post Classical", "Modern"]。 我的问题 我认为拥有新事物ALL比根本没有造成更多的混乱。 你怎么看?您是否要添加此ALL值或不使用它而保留API?
11 rest  api  json  enum 

5
我应该只使用JSON来使用JSON吗
我正在使用PHP / MySQl后端构建一个学习博客站点。所有用户输入都使用POST请求中发送的表单进行处理。 使用JSON是否会使其更清洁或更易于维护或添加功能?还是我只是无缘无故地添加交换格式? 因此,从本质上讲,使用JSON最好地实现什么功能?
11 php  json 

2
JSON查询语言
我有一台返回非常大的JSON消息的服务器,我的客户端应用程序仅依赖于此响应的一部分。客户端应用程序需要检查JSON消息中是否存在“ xyz”属性,并根据结果运行特定的用例。 对于此要求,将整个JSON消息转换为对象听起来对我来说有点昂贵,因此存在这个问题。 是否有像XML一样的标准JSON查询语言?如果是,那么最好的方法是在Java中实现此查询语言。 仅供参考:不能在服务器端更改或添加新服务。
11 java  json 

4
我应该解析服务器上的XML还是提供代理并让浏览器解析它?
我需要与第三方API交互。使用此API,我可以从最终用户的浏览器中发出GET请求,并接收XML响应。该数据将在基于浏览器的应用程序中使用,用户可以在该应用程序中进行搜索,使用它来做出决定等。主要问题是大多数浏览器已锁定跨域XML的使用,因此我不能简单地获取API中的XML。 但是,总体数据基本上分为两组。 第一组数据是公共数据,只需要经常更新一次,因此可以为服务器端的所有用户缓存数据,从而大大减少了通信量。 第二组数据是私有的,对于每个用户而言都是个体的。此数据还会在API中更频繁地更新。这导致缓存效率大大降低。 出于可伸缩性的原因,我想使服务器的负载尽可能小。 我面前有两个选择: 提供一个代理,该代理可用于将XML请求路由到第三方服务器,并直接在客户端和第三方API之间来回传递。 让服务器执行从XML到JSON的转换并去除不必要的信息。从本质上讲,这意味着为我们的服务器创建一个新的API,从而转化为来自第三方API的请求 向用户提供数据的最佳方法是什么?(不必是两个选项之一)
11 javascript  api  xml  websites  json 

2
增加一组有限的选项;API重大变化?
以一个HTTP API端点为例,它发出以下响应模型: { "type": "Dog", "name": "Jessi", ... } 该type领域已经在文档中被描述为一个Dog,Cat或Fish。 例如Rat,是否将添加新选项视为API的重大更改? 将选项添加到有限列表(开发人员可以打开该列表)是否被视为对API的扩展或修改?
9 rest  api  api-design  json 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.