首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >地图的JSON格式

地图的JSON格式
EN

Stack Overflow用户
提问于 2016-11-25 02:03:03
回答 1查看 9.9K关注 0票数 1

如何为以下格式创建json字符串

代码语言:javascript
运行
复制
    Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>>

其中VirtualNE是一个DTO类

代码语言:javascript
运行
复制
 public class VirtualNE {

private VirtualNePK primaryKey;
private String status;
private String lockId;
private String frequency1;
private String frequency2;

     getter & setter goes here
 }

其中VirtualNePK作为主键类嵌套在VirtualNE dto类中

代码语言:javascript
运行
复制
public class VirtualNePK {
private String pCode;
private String neType;
private String src;
private String destination;

  getter & setter goes here
 }
EN

回答 1

Stack Overflow用户

发布于 2016-11-25 10:26:33

此代码将在提供的格式中将您的Map转换为json string

代码语言:javascript
运行
复制
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson ( map1 );

Main:

代码语言:javascript
运行
复制
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Main
{

    public static void main ( String [ ] args )
    {

        //virtualNE related object
        VirtualNePK pk = new VirtualNePK ( );
        pk.setDestination ( "destination1" );
        pk.setNeType ( "type1" );
        pk.setpCode ( "1" );
        pk.setSrc ( "source1" );

        VirtualNE virtualNE = new VirtualNE ( );
        virtualNE.setFrequency1 ( "freq1" );
        virtualNE.setFrequency2 ( "freq1" );
        virtualNE.setLockId ( "lock1" );
        virtualNE.setPrimaryKey ( pk );
        virtualNE.setStatus ( "status1" );      

        //Virtual Ne Set
        Set<VirtualNE> virtualNESet = new HashSet<VirtualNE> ( );

        virtualNESet.add ( virtualNE );

        //set
        Map<String,Set<VirtualNE> > map4 =  new HashMap<> ( );
        map4.put ( "string4" , virtualNESet );
        //Map3
        Map<String,Map<String, Set<VirtualNE>> > map3 = new HashMap<> ( );
        map3.put ( "string3" , map4 );
        //Map2
        Map< String,Map<String ,Map<String, Set<VirtualNE>>> > map2 =  new HashMap<> ( );
        map2.put ( "string2" , map3 );

        //map1
        Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>> map1 = new HashMap<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>> ( );
        map1.put ( "string1" , map2 );

        //Convert to Json
        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        String json = gson.toJson ( map1 );

        System.out.println ( json.toString ( ) );

    }

}

输出:

代码语言:javascript
运行
复制
{
  "string1": {
    "string2": {
      "string3": {
        "string4": [
          {
            "primaryKey": {
              "pCode": "1",
              "neType": "type1",
              "src": "source1",
              "destination": "destination1"
            },
            "status": "status1",
            "lockId": "lock1",
            "frequency1": "freq1",
            "frequency2": "freq1"
          }
        ]
      }
    }
  }
}

反转:

代码语言:javascript
运行
复制
Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>> map = gson.fromJson(json,new TypeToken<Map<String, Map<String, Map<String ,Map<String, Set<VirtualNE>>>>>>(){}.getType ( ) );

System.out.println ( map.toString ( )  );

输出:

代码语言:javascript
运行
复制
{string1={string2={string3={string4=[VirtualNE [primaryKey=VirtualNePK [pCode=1, neType=type1, src=source1, destination=destination1], status=status1, lockId=lock1, frequency1=freq1, frequency2=freq1]]}}}}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40792444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档