如何在Java中将数据转换为JSON和XML


在需要时随时提供重要数据,将提高效率并提高整体生产率。对于可以连续记录多年的发票或其他跟踪交易之类的大量数据,尝试在大型Excel电子表格中查找一个实例不是理想的解决方案。相反,通过将数据转换为JSON或XML,您可以将这些日志传输到计算机程序,然后任何人都可以在获得许可的情况下访问它,并简化数据检索过程。

但是,为此,您需要以一种机器可读的格式放置您的数据,您的计算机系统将很容易理解这些数据。例如,您的许多数据很可能以Excel或CSV文件格式保存,因为它们是最熟悉和用户友好的静态数据格式。但是,这些程序中的数据不能轻松地转换为组织所使用的某些应用程序可能必需的在线格式。因此,可访问性需要像JSON或XML这样的数据交换格式。

JavaScript Object Notation或JSON是一种广泛使用的数据交换格式,用于存储和交换数据以供广泛使用。它也是一个自我描述的系统,您可以在没有限制因素的情况下随意创建数据变量。我们的另一个选项,可扩展标记语言(XML),就像JSON一样,人和计算机都可以轻松读取它。尽管如此,它仍然主要使用规定的标签,这些标签根据信息的特征对其进行划分。因此,XML的代码格式看起来与HTML非常相似。尽管XML使用的描述性单词比JSON多,但XML允许在计算机读取数据方面具有更高的特异性,包括改进的元数据可用性。本质上,在浏览器端工作时,首选JSON,而XML在服务器端工作时是理想的。

以下四个API将允许您将数据集从Excel和CSV转换为JSON和XML。这将使您能够改善数据的可访问性,并提高系统接收,读取和处理信息以备将来使用的效率。

首先,您需要使用Maven或Gradle安装所有这些功能的SDK库。要与Maven一起安装,您可以在pom.xml中向存储库添加Jitpack引用:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

然后,添加对依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v3.54</version>
</dependency>
</dependencies>

要使用Gradle进行安装,您可以在存储库末尾将引用添加到您的root build.gradle中:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后,您可以在build.gradle中添加依赖项:

dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v3.54'
}

第一个API将立即将Excel XLSX文件转换为JSON。如上所示安装SDK之后,可以将导入添加到文件顶部并调用函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDataApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
ConvertDataApi apiInstance = new ConvertDataApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDataXlsxToJson(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDataApi#convertDataXlsxToJson");
    e.printStackTrace();
}

这将返回可以使用任何文本文件查看器读取的输出JSON字符串。为确保此API正常运行,您需要确保满足某些要求:

  • XLSX文件有效且输入正确。
  • 您已经输入了API密钥。可以在Cloudmersive网站上免费检索此信息,整个API库每月提供800次调用。 第二个API会将您的数据从CSV转换为JSON。与第一个功能类似,您将需要输入CSV文件。但是,您也可以指定是否将CSV文件中的第一行用作列名。此参数的默认值为true,但是如果选择为false,则列名将显示为Column0,Column1等。

和以前一样,安装SDK,将导入添加到文件中,然后调用该函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDataApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
ConvertDataApi apiInstance = new ConvertDataApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
Boolean columnNamesFromFirstRow = true; // Boolean | Optional; If true, the first row will be used as the labels for the columns; if false, columns will be named Column0, Column1, etc.  Default is true.  Set to false if you are not using column headings, or have an irregular column structure.
try {
    Object result = apiInstance.convertDataCsvToJson(inputFile, columnNamesFromFirstRow);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDataApi#convertDataCsvToJson");
    e.printStackTrace();
}

接下来的两个API将把您的数据转换为XML,第一个是从XLSX转换。安装SDK库,然后调用该函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDataApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
ConvertDataApi apiInstance = new ConvertDataApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDataXlsxToXml(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDataApi#convertDataXlsxToXml");
    e.printStackTrace();
}

最后,要将CSV转换为XML,您可以调用以下函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDataApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
ConvertDataApi apiInstance = new ConvertDataApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
Boolean columnNamesFromFirstRow = true; // Boolean | Optional; If true, the first row will be used as the labels for the columns; if false, columns will be named Column0, Column1, etc.  Default is true.  Set to false if you are not using column headings, or have an irregular column structure.
try {
    byte[] result = apiInstance.convertDataCsvToXml(inputFile, columnNamesFromFirstRow);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDataApi#convertDataCsvToXml");
    e.printStackTrace();
}

借助这些功能,您可以轻松优化数据,以在需要时随时随地使用。


原文链接:http://codingdict.com/