public static void test025() throws Exception { /** * <pre> * 1 * | | * 2 3 * | * 4 * | * 7 * </pre> */ Graph<Integer, DefaultEdge> g = new DirectedAcyclicGraph<Integer, DefaultEdge>(DefaultEdge.class); g.addVertex(1); g.addVertex(2); g.addVertex(3); g.addVertex(4); g.addVertex(7); g.addEdge(1, 2); g.addEdge(1, 3); g.addEdge(2, 4); g.addEdge(3, 4); g.addEdge(4, 7); ComponentNameProvider<Integer> vertexIdProvider = new ComponentNameProvider<Integer>() { public String getName(Integer i) { return String.valueOf(i); } }; GraphExporter<Integer, DefaultEdge> exporter = new JSONExporter<Integer, DefaultEdge>(vertexIdProvider); Writer writer = new StringWriter(); exporter.exportGraph(g, writer); IOUtils.closeQuietly(writer); String json = writer.toString(); System.out.println(json); // {"creator":"JGraphT JSON // Exporter","version":"1","nodes":[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"7"}],"edges":[{"id":"1","source":"1","target":"2"},{"id":"2","source":"1","target":"3"},{"id":"3","source":"2","target":"4"},{"id":"4","source":"3","target":"4"},{"id":"5","source":"4","target":"7"}]} VertexProvider<Integer> vertexProvider = new VertexProvider<Integer>() { @Override public Integer buildVertex(String id, Map<String, Attribute> attributes) { return Integer.valueOf(id); } }; EdgeProvider<Integer, DefaultEdge> edgeProvider = new EdgeProvider<Integer, DefaultEdge>() { @Override public DefaultEdge buildEdge(Integer from, Integer to, String label, Map<String, Attribute> attributes) { Graph<Integer, DefaultEdge> tmpGraph = new DirectedAcyclicGraph<Integer, DefaultEdge>(DefaultEdge.class); tmpGraph.addVertex(from); tmpGraph.addVertex(to); tmpGraph.addEdge(from, to); return tmpGraph.edgeSet().iterator().next(); } }; GraphImporter<Integer, DefaultEdge> importer = new JSONImporter<Integer, DefaultEdge>(vertexProvider, edgeProvider); Graph<Integer, DefaultEdge> g1 = new DirectedAcyclicGraph<Integer, DefaultEdge>(DefaultEdge.class); Reader reader = new StringReader(json); importer.importGraph(g1, reader); IOUtils.closeQuietly(reader); System.out.println(g1); // ([1, 2, 3, 4, 7], [(1,2), (1,3), (2,4), (3,4), (4,7)]) }
相关推荐
C++的JSON序列化和反序列化是开发Web服务、网络通信或存储配置文件时必不可少的技术。选择合适的库并理解其工作原理,能帮助我们更高效地处理JSON数据。通过实践和学习,可以掌握更多高级技巧,如自定义序列化策略、...
在***中处理JSON的序列化和反序列化是Web开发中常见的需求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由于其简洁性和易于阅读性,被广泛用于服务器与客户端之间的数据传输。下面将详细介绍**...
Json序列化和反序列化是数据交换的一种常见方式,尤其在Web开发中广泛使用。它允许我们将对象转换为JSON(JavaScript Object Notation)格式的字符串,以便在网络上传输,然后在接收端将这些字符串还原为原来的对象...
在VB.NET编程环境中,XML和JSON序列化与反序列化是常见的数据处理技术,用于将对象转换为文本格式(XML或JSON),以便于存储、传输和解析。这两者都是轻量级的数据交换格式,广泛应用于Web服务和客户端应用程序之间...
总结来说,JSON序列化与反序列化是现代Web开发中不可或缺的一部分,它提供了数据交换的标准格式,使得不同语言和平台之间的数据交互变得简单高效。正确理解和使用这一技术,能够极大地提升开发效率和软件的可维护性...
本篇将深入探讨Delphi中的JSON序列化和反序列化技术。 一、JSON简介 JSON是一种独立于语言的数据表示格式,它基于ECMAScript的一个子集。一个有效的JSON对象通常包含键值对(key-value pairs)的集合,数组或其他...
JsonTools是一个不错的JSON序列化和反序列化功能包
在IT领域,JSON数据序列化和反序列化是数据处理的重要环节,尤其在Web开发中,它们在客户端与服务器之间传递数据时起到关键作用。 1. JSON数据格式:JSON数据由键值对组成,键用引号包围,然后冒号分隔,接着是值。...
Java中的JSON(JavaScript Object Notation)序列化与反序列化是开发过程中常见且重要的操作,主要用于数据交换和存储。JSON是一种轻量级的数据交换格式,它允许我们将Java对象转换为JSON字符串,反之亦然,方便在...
本文将深入探讨JSON的序列化与反序列化过程,以及如何使用Gson、FastJson和Jackson这三种流行的Java库来实现这一功能。 一、什么是JSON序列化与反序列化? 1. JSON序列化:序列化是指将Java对象转换为JSON字符串的...
Jackson是Java领域中广泛使用的JSON处理库,它提供了高效的JSON序列化和反序列化功能。在Java应用程序中,我们经常需要将Java对象转换为JSON字符串(序列化)或从JSON字符串恢复Java对象(反序列化),Jackson库就是...
在.NET开发中,C#语言提供了多种方式来处理JSON序列化和反序列化,这对于数据交换和存储至关重要。本文将详细介绍C#中处理JSON的三种主要方法:使用Json.NET库(Newtonsoft.Json)、使用.NET Framework自带的System....
极好的序列化与发序列化代码。可以处理array集合,数组或者单个对象等的序列化与反序列化。
/// Json序列化与反序列化方法封装类 /// public static class JsonConvert { /// /// 序列化模型对象为Json /// /// 模型类型 /// 模型对象 /// <returns></returns> public static string GetJson(T...
JSON(JavaScript Object ...了解和掌握JSON反序列化的原理、常见库以及注意事项,对于提升开发效率和保证代码质量具有积极意义。在实际工作中,应根据项目需求选择合适的反序列化库,并编写测试用例确保其正确性。
本文将详细介绍 C# 中的 JSON 序列化和反序列化,包括使用 Newtonsoft.Json 库来实现 JSON 序列化和反序列化。 一、JSON 序列化 JSON 序列化是指将 .NET 对象转换为 JSON 字符串的过程。在 C# 中,我们可以使用 ...
只要对json和序列化和反序列化总结,以及代码的案例:我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSerializer,JavaScriptSerializer 和 Json.NET。
/// JSON序列化和反序列化辅助类 /// public class JsonHelper { /// /// JSON序列化 /// public static string JsonSerializer(T t) { DataContractJsonSerializer ser = new DataContractJsonSerializer...
Json.NET是.NET开发中广泛使用的第三方库,由James Newton-King 开发,它提供了一套高效且功能丰富的JSON序列化和反序列化的解决方案。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web...