`
txf2004
  • 浏览: 7042372 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Json还可以这样用

阅读更多

日常项目中经常有这样的需求,即需要几个紧密相关的内容存储起来,例如,xxx省xxx市xxx区等等。

例如下图:

这些紧密相关的内容可能会经常增加或者减少某项内容,在数据库应用中,当然可以设计几个字段来存储或者设计一个专门的key-value表来存储这些可变内容,但是对于这类不会直接用条件进行检索的紧密关联的内容来讲,保存在一个字段traffic_description中似乎更为妥帖一点。既然要存储在一个字段中那么就涉及到如何分割和组装的问题。

一个比较直接的做法就是使用分号对每项值进行分割存储,这种方式属于一种平面的结构,还有一个更好的办法就是将这些字段组装成一个json 字符串,格式如{'key1':value1,'key2':['value2','value21']},这样就可以直接利用现成的对象存储方式来保存,当前就有很多第三方包对json提供了支持,如:java中提供了json-lib.jar,其他语言支持包见 www.json.org

下面提供一种简单的实现:

使用方式如下:

@JsonField标注支持 基本类型和数组、collection类型域。

在从DB中load出traffic_description的值后

通过setValue()方法设置进去,那么所有的json域都会被填充好。同样的,如果填充了相应的json域,

在存储在数据库中时,可以调用getValue()得到字符串持久化到数据库中。

通过getValue()得到的字符串形式如下:

这种处理方式的好处是,可以方便的定义你自己要存储的内容,你所有做的仅仅是在新增一个field,然后在上面打上@JsonField标注即可。

而它的缺点也是明显的,1、这种方式明显增加了存储内容的长度 2、由于存储的key是属性的名称,如果名称不匹配也会找不到对应的值。3、如果要对其中的内容进行条件检索,只有进行文本匹配,如果有这种需求,这种方式不推荐。

分享到:
评论

相关推荐

    json转换jsonschema

    在实际应用中,开发者可以使用这样的工具或库,通过简单的API调用来实现JSON到JSON Schema的转换,从而提高数据处理的可靠性和安全性。例如,如果你正在开发一个Web应用,你可以先将用户提交的JSON数据转换为JSON ...

    Java中使用Json

    当我们使用像Apache HttpClient或OkHttp这样的HTTP客户端库时,可以方便地发送和接收JSON数据。例如,发送一个包含JSON数据的POST请求: ```java CloseableHttpClient client = HttpClients.createDefault(); ...

    JsonSQL:用SQL语句解析JSON文件

    这样,我们就可以使用SQL的SELECT、FROM、WHERE等关键字对JSON数据进行检索和过滤。 **基本语法** 1. **SELECT**: 用于选择要返回的JSON属性或值。例如,`SELECT data.name FROM json` 会返回JSON对象中名为"data...

    Delphi_JSON delphi7解析JSON控件

    描述中提到的“新测可以用”,可能意味着这个控件经过了最新的测试,兼容性良好,可以在当前的开发环境中正常使用。这为那些仍在使用Delphi 7的开发者提供了一个可靠的解决方案,让他们无需升级到更高版本就能处理...

    json lib json lib

    在实际开发中,我们通常会将`json-lib-2.1.jar`这样的库文件添加到项目的类路径(Classpath)中,这样就可以在代码中直接引入并使用其提供的API。例如,我们可以创建一个`JSONObject`实例,添加键值对,然后将其转换...

    古诗内容提取json格式转jsonl

    在Python中,可以使用`json`库来实现这一转换: ```python import json with open('古诗.json', 'r') as f_in, open('古诗.jsonl', 'w') as f_out: for line in f_in: obj = json.loads(line) f_out.write(json...

    json+json2

    在JavaScript中,JSON不仅限于网络通信,还可以用于存储和序列化应用程序的状态。由于JSON格式与JavaScript对象结构高度相似,因此可以方便地在两者之间转换。例如,一个JavaScript对象可以通过`JSON.stringify()`...

    json-c 一个用于c语言的json解析库,很强大

    `json-c`就是这样一个专门用于C语言的JSON解析库,它提供了对JSON数据的读取、创建、修改和序列化等功能,使得C程序员可以方便地与JSON格式进行交互。 `json-c`库的核心特性包括: 1. **解析和生成JSON**:`json-c...

    json.zip_C++_JSON_json 类_json 结构体

    例如,nlohmann/json库的`json`类可以这样创建和使用: ```cpp #include <nlohmann/json.hpp> using json = nlohmann::json; json j; j["name"] = "John"; j["age"] = 30; j["city"] = "New York"; ``` 2...

    Jackson将json string转为Object,org.json读取json数组的实例

    使用ObjectMapper可以轻松地将JSON数据转换为Java对象,而org.json库的JSONArray和JSONObject类则提供了处理JSON数组和对象的方法。在实际应用过程中,需要根据具体的数据结构和需求来选择合适的方法,并注意异常...

    asp_json_JSON_asp实现json编码_

    在ASP中,我们可以编写自定义函数或使用如ASPJSON这样的第三方组件来实现JSON操作。 3. `.url`文件:这些文件看起来是书签,指向了可能有关于JSON或服务器软件的在线资源,如"脚本之家.url"和"服务器软件.url"。 在...

    JSONModel MVC demo

    这样,你就可以在Model层直接使用这些对象,无需手动解析JSON。 MJExtension是另一个常用的Objective-C框架,主要用于对象和字典之间的快速转换。虽然在JSONModel MVC demo中可能没有直接使用,但理解其工作原理对...

    Jmeter需要用的json.jar包

    4. **使用JSON库**:在Beanshell脚本中,你可以使用如下方式解析JSON: ```java import org.json.JSONObject; jsonString = prev.getResponseDataAsString(); jsonObject = new JSONObject(jsonString); ...

    Ajax中使用JSON传输数据

    通过`json.js`和`json.jar`这样的工具,我们可以方便地在JavaScript和Java环境中进行JSON的序列化和反序列化操作,从而实现数据的传递和解析。在实际开发中,还需要注意安全问题,如避免XSS和CSRF攻击,以及优化网络...

    C++读写json文件

    它还能处理嵌套的JSON结构,这意味着你可以轻松地处理包含数组和嵌套对象的复杂JSON数据。 7. **异常处理**:在处理JSON时,可能会遇到错误,如解析错误、类型不匹配等。nlohmann/json库提供了丰富的异常类来捕获...

    【Unity-插件】JsonNet.9.0.1.zip UnityJson解析插件

    在Unity中,导入JsonNet.9.0.1.unitypackage文件后,你需要将其添加到项目的依赖项中,这样就可以在代码中直接引用JsonNet的类和方法,开始使用它的功能了。通过JsonNet,Unity开发者可以更便捷地处理JSON数据,从而...

    json net.sf.json

    2. **JSON与Java Bean映射**:库还支持自动将Java Bean对象映射为JSON,反之亦然。这样极大地简化了Java对象和JSON数据之间的转换。例如,`JSONObject.toBean()`方法可以将一个JSON对象转换为指定类型的Java Bean。 ...

    json需要的包 json包 json.jar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换...使用像`json.jar`这样的库,可以使这些操作变得更加简单和便捷。在开发过程中,根据项目的具体需求选择合适的JSON库,能够提高开发效率并降低维护成本。

    json2.js 字符串转转json对象工具

    然而,如果你需要确保在所有浏览器中都能正确处理JSON,那么包含json2.js库是一个安全的选择,尤其是当你的目标用户可能还在使用较旧的浏览器时。 在提供的压缩包中,有两个文件:`json2-debug.js`和`json2.js`。`...

    Json 格式化工具

    使用JSON格式化工具,开发者可以更轻松地检查API响应、调试代码或与团队成员共享结构化的数据。通过格式化的JSON,可以快速定位问题,识别数据模式,或者在没有代码编辑器的情况下对数据进行基本的分析。此外,对于...

Global site tag (gtag.js) - Google Analytics