要在Java中调用C#数据进行反序列化,你需要使用JSON作为数据交换格式。这里是一个简单的示例,展示了如何在Java中调用C#服务并使用JSON进行数据交换。
首先,我们需要创建一个C# Web API服务,该服务将返回一个JSON字符串。在这个例子中,我们将创建一个简单的C#控制台应用程序,它包含一个HTTP GET方法,返回一个JSON字符串。
using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; namespace CSharpWebApiService { [ApiController] [Route("api/[controller]")] public class DataController : ControllerBase { [HttpGet] public async TaskGet() { var data = https://www.yisu.com/ask/new { Value1 ="Hello", Value2 = 42 }; return Ok(data); } } }
接下来,我们需要创建一个Java客户端来调用这个C#服务并反序列化返回的JSON字符串。我们将使用HttpClient
来调用服务,并使用org.json
库来处理JSON数据。
首先,将以下依赖项添加到Java项目的pom.xml
文件中(如果你使用的是Maven):
org.json json 20210307
然后,创建一个Java类来表示从C#服务返回的数据:
public class MyData { private String value1; private int value2; // Getters and setters public String getValue1() { return value1; } public void setValue1(String value1) { this.value1 = value1; } public int getValue2() { return value2; } public void setValue2(int value2) { this.value2 = value2; } }
最后,创建一个Java类来调用C#服务并反序列化JSON数据:
import org.json.JSONObject; import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class JavaClient { public static void main(String[] args) throws IOException, InterruptedException { HttpClient httpClient = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:5000/api/data")) .build(); HttpResponseresponse = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); String jsonResponse = response.body(); JSONObject jsonObject = new JSONObject(jsonResponse); MyData myData = https://www.yisu.com/ask/new MyData();"Value1")); myData.setValue2(jsonObject.getInt("Value2")); System.out.println("Value1: " + myData.getValue1()); System.out.println("Value2: " + myData.getValue2()); } }
在这个示例中,我们首先创建了一个HttpClient
实例,然后使用HttpRequest
对象构建一个HTTP GET请求。接下来,我们使用HttpClient
的send
方法发送请求,并将响应体字符串获取。然后,我们使用JSONObject
类将JSON字符串转换为Java对象。最后,我们将反序列化后的数据打印到控制台。