Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中将嵌套的inputStream解析为JSON?_Java_Json - Fatal编程技术网

如何在java中将嵌套的inputStream解析为JSON?

如何在java中将嵌套的inputStream解析为JSON?,java,json,Java,Json,我有一个对象,它包含内容inputStream对象和该对象的列表,我试图通过JSON将其解析到客户端,但我不知道如何解析 对象: public product(int id, int type, float price, float length, String color, InputStream img){ this.id = id; this.price = price; ...} 我想做的是: List<Product> list = db.

我有一个对象,它包含内容inputStream对象和该对象的列表,我试图通过JSON将其解析到客户端,但我不知道如何解析

对象:

public product(int id, int type, float price, float length, String color, InputStream img){
               this.id = id; this.price = price; ...}
我想做的是:

 List<Product> list = db.getProducts();
 String json = "";
 if( list.size() > 0)
 {
     json = new Gson().toJson(list);
     System.out.println("product servlet >> " + list);
 } 

 response.getWriter().write(json);
 break;
List List=db.getProducts();
字符串json=“”;
如果(list.size()>0)
{
json=new Gson().toJson(列表);
System.out.println(“产品servlet>>”+列表);
} 
response.getWriter().write(json);
打破

问题在于json=new Gson.toJson(list)行中,它无法获取InputStream对象

为什么
img
InputStream
而不是
字节[]
?显然,您并不担心图像对于可用内存来说可能太大,因此请坚持使用
byte[]
。当然,您需要使用适配器将其序列化,例如Base-64,但在web上有很多示例,这很容易。因为我认为当您从db读取blob时,您需要使用InputStream,我错了吗?好的,我将尝试使用byte[],您可以在读取blob时使用
InputStream
byte[]
。您选择哪一种主要取决于大小,例如,10 GB 4K电影可能无法放入内存,但4 MB JPEG图像正好适合。