将JSON值插值到字符串中

时间:2019-06-12 21:26:38

标签: java json string-interpolation

我正在编写一个应用程序/类,它将接收模板文本文件和JSON值,并将插值后的文本返回给调用者。

需要确定输入模板文本文件的格式。例如:my name is ${fullName}

JSON示例:

{"fullName": "Elon Musk"}

预期输出:

"my name is Elon Musk"

我正在寻找可以实现此目的的广泛使用的库/格式。

  1. 模板文本文件应为哪种格式?

  2. 哪个库将支持上面定义的模板文本文件格式并接受JSON值?

构建自己的解析器很容易,但是有很多边缘情况需要照顾,我不想重新发明轮子。

例如,如果我们有一个带有列表,嵌套值等的稍微复杂的JSON对象,那么我也必须考虑这些并实现它。

3 个答案:

答案 0 :(得分:1)

我一直使用org.json库。在http://www.json.org/处找到。

通过JSON对象非常容易。

例如,如果要创建一个新对象:

JSONObject person = new JSONObject();
person.put("fullName", "Elon Musk");
person.put("phoneNumber", 3811111111);

JSON对象如下所示:

{
"fullName": "Elon Musk",
"phoneNumber": 3811111111
}

这类似于从对象中检索

String name = person.getString("fullName");

您可以使用BufferedReader读取文件并根据需要对其进行解析。 希望我能帮上忙。 :)

答案 1 :(得分:0)

这就是我们的方法。

Map inputMap = ["fullName": "Elon Musk"]
        String finalText = StrSubstitutor.replace("my name is \${fullName}", inputMap)

答案 2 :(得分:0)

您可以尝试以下方法: https://github.com/alibaba/fastjson

Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。 Fastjson可以与任意Java对象一起使用,包括您没有源代码的现有对象。