Ajuda para gerar um Json e percorrer ele

Boa tarde!

Preciso de uma ajuda para gerar um Json com dois arrays list e depois percorrer cada um. Primeiro eu listo todas as categorias e gero uma lista e para cada categoria no loop e busco os produtos e crio outra lista. No meu Json eu precisaria listar para cada categoria os produtos, como faço isso?

Alguém pode me ajudar a fazer isso, nunca trabalhei com Json.

List categorias = new ArrayList();
List produtos = null;

	ConexaoUtil c = new ConexaoUtil(); 
	ResultSet rs_cat = null;
	ResultSet rs_prod = null;
		
	rs_cat = c.executeConsulta("select cod_categoria,nm_categoria from categoria");

		while(rs_cat.next()) 
		{ 
			CategoriaDto categoria = new CategoriaDto();
			categoria.setCod_categoria(rs_cat.getInt("cod_categoria"));
			categoria.setNm_categoria(rs_cat.getString("nm_categoria"));
			
			produtos = new ArrayList<ProdutoDto>();
			
			rs_prod = c.executeConsulta("select cod_produto,nm_produto from produtos where cod_categoria='"+categoria.getCod_categoria()+"'");

			while(rs_prod.next()) 
			{ 
				
				ProdutoDto produto = new ProdutoDto();
				produto.setCod_produto(rs_prod.getInt("cod_produto"));
				produto.setNm_produto(rs_prod.getString("nm_produto"));
				produtos.add(produto);

			}
			
			categoria.setProdutos(produtos);
			
			categorias.add(categoria);
		}
c.fechaConexao();

@marcosrhs Perdoe a minha ignorância mas não consigo ver onde você está gerando esse Json, pode explicar melhor? Onde utiliza esse Json e como ele está sendo gerado? Dentro desse código você só está criando uma lista de produtos.

Boa tarde Villagran! Sim estou criando somente a lista de categorias com seus produtos.
Não estou gerando o JSON porque é essa minha dúvida, como gerar e percorrer ele após gerado.

Nunca fiz isso, preciso gerar o JSON dessa lista, enviar para um jsp e percorrer lá essa lista em JSON.

Estou usando o Datatable para listar as categorias e no row details, gostaria de mostrar os produtos.

Datatable

Consegue me ajudar?

@marcosrhs Use a biblioteca do google Gson com ela o trabalho é muito simples:
http://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.3/gson-2.8.3.jar

{

   //criando Json a partir de objeto
   try (FileWriter writer = new FileWriter("D:\\produto.json")) {
           gson.toJson(produto, writer);
   } catch (IOException e) {
           e.printStackTrace();
  }


  //transformando Json para Objeto
  try(Reader reader = new InputStreamReader(JsonToJava.class.getResourceAsStream("/Server1.json"), "UTF-8")) {
       Gson gson = new GsonBuilder().create();
       Produto p = gson.fromJson(reader, Produto.class);
  }

}

Este é só um exemplo, espero que te ajude.

Ok, obrigado Villagran