在Java中处理 JSON 数据
JSON代表 JavaScript Object Notation,它是一种轻量级的基于文本的开放标准,其设计易于人类可读的数据交换。一般来说,JSON 是从 JavaScript 扩展而来的。 JSON 独立于语言,易于阅读和编写。 JSON 的文件扩展名为.json 。
示例 – JSON 格式
在下面给出的示例中,您将看到如何以 JSON 格式存储值。考虑学生信息,其中 Stu_id、Stu_Name、Course 是您需要存储的实体,然后您可以以 JSON 格式将这些值存储为键值对形式。我们来看一下。
{
"Student": [
{
"Stu_id" : "1001",
"Stu_Name" : "Ashish",
"Course" : "Java",
},
{
"Stu_id" : "1002",
"Stu_Name" : "Rana",
"Course" : "Advance Java",
}
]
}
它是我们可以访问的方法,即在Java编程语言中读取或写入 JSON 数据。这里我们简单地使用json.simple库通过Java访问此功能,这意味着我们可以使用Java编程语言中的json.simple库对 JSON 对象进行编码或解码。现在, Java的 json.simple 包中包含以下文件。所以要访问我们首先必须安装 json.simple 包。首先安装时,我们需要设置 json-simple.jar 类路径或在不同情况下添加 Maven 依赖项。
第 1 步:使用此链接下载json.simple :json.sample 的下载链接
第 2 步:还有一种添加 Maven 依赖项的方法,为此,我们必须将下面给出的代码添加到我们的pom.xml文件中。
com.googlecode.json-simple
json-simple
1.1
上面下载的.jar文件中包含以下Java源文件:
// .jar file
META-INF/MANIFEST.MF
org.json.simple.ItemList.class
org.json.simple.JSONArray.class
org.json.simple.JSONAware.class
org.json.simple.JSONObject.class
org.json.simple.JSONStreamAware.class
org.json.simple.JSONValue.class
org.json.simple.parser.ContainerFactory.class
org.json.simple.parser.ContentHandler.class
org.json.simple.parser.JSONParser.class
org.json.simple.parser.ParseException.class
org.json.simple.parser.Yylex.class
org.json.simple.parser.Yytoken.class
Java中的 JSON 对象编码:
正如我们上面所讨论的,这个json.simple库用于在Java中读取/写入或编码/解码 JSON 对象。因此,让我们看看如何使用JSONObject函数对 JSON 对象的一部分进行编码。现在我们创建一个Java文件mainEncoding. Java并将下面编写的代码保存在其中。
Java
import org.json.simple.JSONObject;
// Program for print data in JSON format.
public class JavaJsonEncoding
{
public static void main(String args[])
{
// In java JSONObject is used to create JSON object
// which is a subclass of java.util.HashMap.
JSONObject file = new JSONObject();
file.put("Full Name", "Ritu Sharma");
file.put("Roll No.", new Integer(1704310046));
file.put("Tution Fees", new Double(65400));
// To print in JSON format.
System.out.print(file);
}
}
Java
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
public class JavaJsonDecoding {
public static void main(String[] args)
{
// Converting JSON data into Java String format
String k = "{\"Full Name\":\"Ritu Sharma\",
\"Tution Fees\":65400.0, \"Roll No.\":1704310046}";
Object file = JSONValue.parse(k);
// In java JSONObject is used to create JSON object
JSONObject jsonObjectdecode = (JSONObject)file;
// Converting into Java Data type
// format From Json is the step of Decoding.
String name = (String)jsonObjectdecode.get("Full Name");
double fees = (Double)jsonObjectdecode.get("Tution Fees");
long rollno = (Long)jsonObjectdecode.get("Roll No.");
System.out.println(name + " " + fees + " " + rollno);
}
}
输出 :
{"Full Name":"Ritu Sharma", "Roll No.":1704310046, "Tution Fees":65400}
现在我们将看到如何使用JSONObject函数编写解码部分 JSON 对象的代码。现在我们创建一个Java文件mainDecoding。 Java并将下面编写的代码保存在其中。
Java
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
public class JavaJsonDecoding {
public static void main(String[] args)
{
// Converting JSON data into Java String format
String k = "{\"Full Name\":\"Ritu Sharma\",
\"Tution Fees\":65400.0, \"Roll No.\":1704310046}";
Object file = JSONValue.parse(k);
// In java JSONObject is used to create JSON object
JSONObject jsonObjectdecode = (JSONObject)file;
// Converting into Java Data type
// format From Json is the step of Decoding.
String name = (String)jsonObjectdecode.get("Full Name");
double fees = (Double)jsonObjectdecode.get("Tution Fees");
long rollno = (Long)jsonObjectdecode.get("Roll No.");
System.out.println(name + " " + fees + " " + rollno);
}
}
输出 :
Ritu Sharma 65400.0 1704310046
注意:这里也可以使用列表或映射来完成Java JSON 编码。