将JsonNode转换为POJO(Convert JsonNode into POJO)
这似乎有点不寻常,但我正在寻找一种将
JsonNode
转换/映射到POJO
的有效方法。我将我的一些Model的信息存储在json文件中,我必须支持几个版本的模型。
我所做的是将json文件加载到JsonNode的内存中,应用几个版本策略,使其与最新版本的Model相匹配。
ObjectMapper mapper = new ObjectMapper(); BufferedReader fileReader = new BufferedReader(new FileReader(projPath)); JsonNode rootNode = mapper.readTree(fileReader); //Upgrade our file in memory applyVersioningStrategy(rootNode); ProjectModel project = mapJsonNodeToProject(rootNode);
除非有更快的方法,否则我可能会简单地手动将
JsonNodes
应用到我的模型中This may seem a little unusual, but I am looking for an efficient way to transform/map a
JsonNode
into aPOJO
.I store some of my Model's information in json files and I have to support a couple of version of my model.
What I do is load the json file in memory in a JsonNode, apply a couple of versioning strategies to make it match the latest version of my Model.
ObjectMapper mapper = new ObjectMapper(); BufferedReader fileReader = new BufferedReader(new FileReader(projPath)); JsonNode rootNode = mapper.readTree(fileReader); //Upgrade our file in memory applyVersioningStrategy(rootNode); ProjectModel project = mapJsonNodeToProject(rootNode);
Unless there's a faster way to do it, I will probably end up simply manually applying the
JsonNodes
to my Model
原文:https://stackoverflow.com/questions/19711695
最满意答案
这个正则表达式匹配“由9个数字组成”,并且
(?m)
在换行符之前/之前使插入符和美元匹配,以防止多行:(?m)(?<!.)^\d{9}$(?!.)
环绕主要匹配的外观确保匹配的行是文件中的唯一行 - 即文件中只有一行。
看到这个在rubular上演示的 ,看看如何在9位输入文本中添加任何其他字符,即使是单个换行符也会导致不匹配
This regex matches "comprised of 9 digits" and the
(?m)
makes caret and dollar match after/before newlines so it works to prevent multiple lines:(?m)(?<!.)^\d{9}$(?!.)
The look arounds wrapping the main match ensure the line matched is the only line in the file - ie that there's exactly one line in the file.
See this demonstrated on rubular, see how adding any other characters to the 9-digit input text, even a single newline, will result in a non match
相关问答
更多-
这个正则表达式匹配“由9个数字组成”,并且(?m)在换行符之前/之前使插入符和美元匹配,以防止多行: (?m)(?
如何根据正则表达式将文件内容分类到不同的组?(How do I categorize file contents based on regex into different groups?)[2023-03-17]
对于与模式匹配的每一行并适当地重定向输出,单个Awk进程可以做得更好: awk '{ if ($0 ~ /serv$/) { print > "serv_list.txt" } else if ($0 ~ /d$) { print > "daemon_list.txt" } // ... and so on else { print > "uncat_list.txt" } }' pack_list.txt A single Awk process can do this much bet ...非常感谢choroba和John Mark Mitchell让我朝着正确的方向前进。 在我的Jenkins“执行shell脚本”构建步骤中使用的解决方案是 !/bin/bash # Name the build with the JIRA number taken from the branch name. # NOTE: the first line (aka shebang) is required to force /bin/bash shell (instead of /bin/sh) which ...它匹配零个或多个开放括号字符( \[* ),后跟一个句点和一个方括号( \.\] )。 请注意,它只需要在“$ line”中存在某个匹配项,而不是整个字符串匹配。 这里有一个演示: $ showmatch() { [[ "$1" =~ \[*\.\] ]] && echo "matched: '${BASH_REMATCH[0]}'" || echo "no match"; } $ showmatch "abc[.]def" matched: '[.]' $ showmatch "abc.]def" mat ...bash正则表达式匹配字符串(bash regex match string)[2023-07-12]
要匹配正则表达式,您需要使用=~运算符。 尝试这个: [[ sed-4.2.2.tar.bz2 =~ tar.bz2$ ]] && echo matched 或者,您可以使用通配符(而不是正则表达式)与==运算符: [[ sed-4.2.2.tar.bz2 == *tar.bz2 ]] && echo matched 如果可移植性不是一个问题,我建议使用[[而不是[或test因为它更安全,更强大。 看看测试与[和[[? 详细信息。 To match regexes you need to use the ...不要使用正则表达式解析HTML,请使用适当的XML / HTML解析器。 理论: 根据编译理论,不能使用基于有限状态机的正则表达式来解析HTML。 由于HTML的分层结构,您需要使用下推自动机并使用YACC等工具操作LALR语法。 realLife©®™日常工具: 您可以使用以下任一项: xmllint通常默认安装libxml2,xpath1 xmlstarlet可以编辑,选择,转换...默认情况下不安装,xpath1 xpath通过perl的模块XML :: XPath,xpath1安装 xidel xp ...您可以在find命令中使用正则表达式: export spp_run=/path/phantompeakqualtools/run_spp.R export bam_loc=/path/ChIP-Seq/output export dir samples=(S_12_O_319_K27me3 S_12_O_319_K4me1 S_12_O_319_K4me3 S_12_O_319_K27ac) for dir in ${samples[@]}; do find . -type f -regex ". ...使用正则表达式重命名文件,在Bash中使用x = $ {...}?(Renaming a file using a regular expression and x=${…} in Bash?)[2023-06-26]
构造${...}被称为“参数扩展”,可以在Bash手册中找到。 替换功能非常简单,不支持反向引用( $1 )。 您可以使用sed代替: x=$(sed -E 's/\(([[:alnum:]]+)\)-([[:alnum:]]+)/\2-\1/' <<< "$i") 请注意, [[:alnum:]]与\w在其他语言中相同,但POSIX正则表达式不具有后者。 有关详细信息,请参阅man re_format 。 The construct ${...} is called "parameter expansi ...在它的核心,你需要用''引用整个字符串。 (如果你附上""那么!会给你带来悲伤)。 那么你只需要在你的正则表达式中(如果有的话)逃避内部。 你也想要-P (perl)而不是-E (egrep)正则表达式。 grep -r -n -H -P '(?Bash代表它的角色类有点不同(与你期望的不同)。 文档可在此处获得 以下应该工作: if [[ "test" =~ '^[[:alnum:]]+$' ]]; then echo "yes"; else echo "no"; fi Bash represents its character classes a little different (from what you're expecting). Documentation available here. The following should w ...相关文章
更多- Jackson树模型JsonNode
- Netty入门实例-使用POJO代替ByteBuf
- 从User POJO中再抽取出AbstractUser有什么优势?
- Hadoop文本转换为序列文件
- 使用 XSLT 将 XML 转换为 XHTML
- 关于如何将utf8转换为gb2312的问题
- Hibernate映射关系
- 用java把“真”这个字符转换为十六进制为“771f”,这是ascii还是unicode
- JMS&ActiveMQ实战- MDB
- SSH中使用了模型驱动
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。