java - 组装json对象的问题
PHPz
PHPz 2017-04-18 10:04:22
0
8
540

查询数据库有如下的查询结果
name id remark time data type contain
张三 1 测试 2016 数据1 test1 1
张三 1 测试 2016 数据2 test2 1
张三 1 测试 2016 数据3 test3 1
张三 1 测试 2016 数据4 test4 1
李四 2 测试2 2016 数据99 test66 0
李四 2 测试2 2016 数据98 test66 0
......
现在我想处理数据,形成如下格式
[{name:张三,remark:测试,time:2016,display:[{data:数据1,type:test1},{data:数据2,type:test2},{data:数据3,type:test3},{data:数据4,type:test4}]},{name:李四,remark:测试2,time:2016,display:[{data:数据99,type:test66},[{data:数据98,type:test66}]}]
需要一个比较方便的方法,手动拼接就算了,感谢。

[
  {
    name: 张三,remark:测试,time:2016,display: [
      {
        data: 数据1,type: test1
      },
      {
        data: 数据2,type: test2
      },
      {
        data: 数据3,type: test3
      },
      {
        data: 数据4,type: test4
      }
    ]
  },
  {
    name: 李四,remark:测试2,time:2016,display: [
      {
        data: 数据99,type: test66
      },
      [
        {
          data: 数据98,type: test66
        }
      ]
    }
  ]

想到用hashmap,不过没实现,请教各位指点下

PHPz
PHPz

学习是最好的投资!

全員に返信(8)
刘奇

質問者は、シリアル化と逆シリアル化の概念がまだないためにこの質問を提起しました。
シリアル化は、Java インスタンスを xml または json (またはその他の仕様) 文字列に変換するなど、オブジェクトを特定の形式のデータに変換するプロセスです。逆シリアル化プロセスはその逆で、xml、json (またはその他の仕様) を Java オブジェクトに変換します。

JSON のシリアル化と逆シリアル化については、個人的には 2 つの方法があると考えています。
1. リフレクションやその他のメソッドを使用してこのメ​​ソッドを完成させるなど、最終的には文字列を結合することになります。
2. gson、jackson、fastjson などの既存の json ライブラリを使用します。これらは比較的単純なシリアル化および逆シリアル化インターフェイスを提供します。
たとえば、fastjson を使用すると、このスタイル (擬似コード) でシリアル化を実装できます。

リーリー

逆シリアル化も同様です

いいねを押す +0
迷茫

fastjson (oschina 紹介ページ) など、JSON を生成する Java ライブラリは多数あります

  • グソン

  • ジャクソン

  • Fastjson

いいねを押す +0
刘奇

Gson を検索

リーリー
いいねを押す +0
迷茫

まず Java Bean にアセンブルしてから、いくつかの JSON シリアル化ツールを使用します。一般的に使用されるツールには Jackson,fastjson,Gson などがあります。

いいねを押す +0
阿神

ハッシュマップを使用し、それをリストに入れ、次にマップに入れ、Gson を通じて変換できます。
例:
Map<String,Stirng> nameMap = new HashMap<String,String>();
nameMap .put(name,"Zhang San");
nameMap .put(remark, " 営業担当者");
Map<String,Stirng> dataMap= new HashMap<String,String>();
List dataList =new ArrayList();
for(int i=0;i<= 4 ;i++){
dataMap.put("data","data1");
dataMap.put("type","666");
}
dataList.add(dataMap) ;
nameMap.put(display,dataList);
String s = new Gson().toJson(nameMap);
コードはわずかな調整で実行できるはずです。

いいねを押す +0
大家讲道理

さまざまなツールを試すことができます。

いいねを押す +0
巴扎黑

Java にはオブジェクトを JSON 文字列にシリアル化する方法がたくさんあります。なぜそれらを使用しないのでしょうか?

いいねを押す +0
黄舟

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート