我有一个很大的JSON文件,如下所示。

[{"id":0,"name":"Mrs. Tess Goyette","priceRange":{"min":86,"max":87},"requirements":["close to transport","internet","bath","gym"]},..

明智地,有999个类似的项目。 我想将此数据发送到MySQL数据库。 也用它做一些交易。 还有一个像这样的文件,其中包含40个酒店名称和数据,称为“住宿”。

我无法使用Java解析此文件。 有人可以帮忙吗? 我试图在其中创建一个JSON对象和数组,但失败了。 enter code here

任何帮助表示赞赏。

是的,请确保我已经尝试编写类似这样的代码。

public static void main(String[] args) {


        JSONParser parser = new JSONParser();
        try {

                        JSONParser parser = new JSONParser();

            InputStream is = hoteldemo.class.getResourceAsStream("accommodation.json");


            String jsonTxt = IOUtils.toString(is); 
            JSON json = JSONSerializer.toJSON(jsonTxt);

            JSONObject json1 = (JSONObject)JSONSerializer.toJSON(jsonTxt); 
            JSONObject json2= json1.getJSONObject("menu");

              double id = json2.getDouble("id");
            String name = json2.getString("name");
            int price=json2.getInt("price");

            JSONArray jarray=json2.getJSONArray("attributes");
            //JSONArray jarray1=json1.getJSONArray("capacity");

           int a= json2.size();
            for(int i=0;i<json2.size();i++)
            {
            System.out.println("The id is "+ json2.getDouble("id"));
            System.out.println("The name is "+ json2.getString("name"));
            System.out.println("The price is "+ json2.getInt("price"));
         System.out.println("the size of object is" + a);

            }
         /*   for(int i=0;i<jarray.size();i++)
            {
                System.out.println("This is ameneities id is " + jarray.getString(i));
            }
            for(int j=0;j<jarray1.size();j++)
            {
                System.out.println("This is ameneities id is " + jarray1.getString(j));

            }*/


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
    }

但这给了我一个对象,例如仅第一个id和下一个id在for循环上不可访问。

===============>>#1 票数:0

在处理JSON格式的数据时,我通常喜欢做的第一件事就是不处理JSON。 我通常更喜欢填充一些好的旧POJO,然后再进行任何业务逻辑处理。 要将JSON映射到Java数据结构,我的首选是使用Jackson 以下是使用Jackson来反序列化原始问题中的示例JSON的示例。

import java.io.File;
import java.util.List;

import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
import org.codehaus.jackson.annotate.JsonMethod;
import org.codehaus.jackson.map.ObjectMapper;

public class JacksonFoo
{
  public static void main(String[] args) throws Exception
  {
    ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD, Visibility.ANY);

    List<AccomodationRequest> requests = mapper.readValue(new File("accommodation.json"), mapper.getTypeFactory().constructCollectionType(List.class, AccomodationRequest.class));
    System.out.println(requests);

    for (AccomodationRequest request : requests)
    {
      System.out.println("----");
      System.out.println("id is " + request.id);
      System.out.println("name is " + request.name);
    }
  }
}

class AccomodationRequest
{
  int id;
  String name;
  PriceRange priceRange;
  List<String> requirements;

  @Override
  public String toString()
  {
    return String.format("AccomodationRequest: id=%d, name=%s, priceRange=%s, requirements=%s", id, name, priceRange, requirements);
  }
}

class PriceRange
{
  int min;
  int max;

  @Override
  public String toString()
  {
    return String.format("PriceRange: min=%d, max=%d", min, max);
  }
}

  ask by Kirti Thombare translate from so

未解决问题?本站智能推荐:

1回复

使用Java代码在html脚本中提取JSON属性

我需要从下面显示的脚本中提取json arraylist部分。 我在网上搜索,但得到了正确的答案。 这是脚本: WPLG\'s" ... carp.","layout":""},{"uri":" foodan
1回复

使用Java中的Jsoup将HTML表解析为JSON

我有一个格式如下的HTML表格: 我想用Jsoup解析这个HTML,并输出一个格式如下的JSON字符串: 我试过这段代码: 但它返回了错误的结果: 我无法更改表代码,因为它位于另一台服务器上。 如何使用Java中的Jsoup从输入中获得所需的结果?
1回复

解析器如何处理json数据

我正在阅读Cross_Site_Scripting_Prevention_Cheat_Sheet ,它在规则3.1中说 确保返回的Content-Type标头为application / json,而不是text / html。 这将指示浏览器不要误解上下文并执行注入的脚本 这是否意味着如果我
1回复

XCODE中的JSON解析不一致(可可错误3840)

我使用相同的类和方法通过两个专门编写的API下载数据。 该API之一工作正常,但另一个产生3840错误。 这是代码: 当我使用Terminal和“ curl -v”命令将其下拉时,数据看起来像这样正确解析: 未解析的数据如下所示: 我唯一能想到的是JSON阻塞了以
2回复

AngularJS-JSON解析HTML

我有点陷入困境,我从带有角度的JSON的端点获取数据,有时数据可能是HTML代码,我读了一下,发现如果我想将该信息解析为HTML,没有"" ,我必须使用JSON.parse() 。 问题是现在在我的模板中调用该代码之前,该代码已转义并引发错误。 http://screencast.com
4回复

可以用Goutte解析JSON吗?

我正在抓取网站,到目前为止,使用Goutte解析HTML没有问题。 但我需要从网站检索JSON,并且由于cookie管理,我不想用file_get_contents()来做 - 这不起作用。 我可以使用纯cURL但在这种情况下我只想使用Goutte而不想使用任何其他库。 那么有什么
1回复

使用JSON.Parser解析HTML样式元素

我有一个json字符串: 我需要将其转换为json对象。 此字符串包含html和非html数据。 我在我的js中使用json解析器,如下所示: 但是在解析HTML样式位时出现此错误: 语法错误:意外的标记t。 如何使用json解析器解析HTML元素? 我应
1回复

使用Ajax JSON解析HTML

我有这样的文件要用Python解析(从报废): 我需要解析它并提取所有json数据。 现在,我使用正则表达式清除所有'\\ n'和'\\ t'以及eval()函数,将其转换为Python字典。.我真的不喜欢这种解决方案,尤其是eval()。 但是我查看了BeautifulSoup和l
1回复

从文档主体解析Json

我需要将此页面的主体放入一个对象: http://sob.ca.flyerservices.com/cached_banner_pages/AJAXProxy.aspx?bname=SOB&AJAXCall=GetPublicationData.aspx?view=PRODUCT&
1回复

使用htmlparser2将html字符串解析为json

我正在尝试使用htmlparser2( https://www.npmjs.com/package/htmlparser2 )将html原始字符串解析为json。 但它的用法只记录标签/文本,我想要的是json就像它的livedemo( http://demos.forbeslindesa