java - 使用 Java 从 JSON 中提取数据

标签 java json api data-extraction

问题:从 JSON 文件中提取数据并将其存储在 java 中以供调用的方法。

我正在尝试做的事情:我想从 JSON 文件中提取数据,以使用 Java 生成屏幕上数据的比较。

我尝试过的:首先,我尝试查找有关从 JSON 文件中提取数据的资源和信息,但随后尝试通过手动操作文本来实现,但这显然是不可扩展的。

代码

{
"searchRoutes": 
  {
  "0": "refinements"
  }
"searchResults": 
  {
  "classifiedAdverts": 
    {
    "0": 
      {
      "id": "201401311453322"
      "capId": "20524"
      "channel": "cars"
      "distanceFromVehicleLocation": 0
      "searchTarget": "usedcars"
      "advertAttributes": 
        {
        "advertTitle": "Ford Fiesta 1.3 Flight 3dr +PX TO CLEAR+NO MOT-TAX+"
        "description": "RED, 07989 715714, Tilt/removable glass sunroof, 14" 7 spoke alloy wheels, Central locking, Stereo radio/cassette model 3000NT/2 speakers, Immobiliser-Passive Anti-Theft System (PATS), Driver's seat manual height adjustment. £195 p/x welcome"
        "advertVersionNumber": 7
        "advertPlacementDate": 20140131152126
        "advertPlacementDateFormatted": "31/01/2014 15:21:26"
        "daysOld": 6
        "isBasicAdvert": "false"
        "displayAdvertiserAddress": "true"
        "vehicleLatLong": 
          {
          "0": 52.501497
          "1": -1.832014
  }
        "town": 
          {
          "county": 
            {
            "region": 
              {
              "numberOfAdverts": 0
              "name": "WEST MIDLANDS"
  }
            "numberOfAdverts": 0
            "name": "WEST MIDLANDS"
  }
          "numberOfAdverts": 0
          "name": "BIRMINGHAM"
  }
        "isTrade": "true"
        "isNearlyNew": "false"
        "isUsedApproved": "false"
        "partExchangeAllowed": "false"
        "price": 195
        "vehiclePriceExtra": "p/x welcome"
        "telesafe": "false"
        "badAdType": "OK"
        "oneSearchAds": "used"
        "displaySlideShow": "false"
        "videoAudioDisabled": "true"
        "imageInfo": 
          {
          "imageDimensions": 
            {
            "width": "1024"
            "height": "768"
  }
          "advertImages": 
            {
            "0": 
              {
              "imageId": "3fb3f6858942f51ace201b490b953180"
              "imageUrlTemplate": "http://pictures2.autotrader.co.uk/imgser-uk/imgser-uk/servlet/media?id=3fb3f6858942f51ace201b490b953180&width={width}&height={height}"
  }
            "1": 
              {
              "imageId": "5cf02458c4142e9049166548015b9714"
              "imageUrlTemplate": "http://pictures2.autotrader.co.uk/imgser-uk/imgser-uk/servlet/media?id=5cf02458c4142e9049166548015b9714&width={width}&height={height}"
      }
    }
  }
        "owners": 4
  }
      "advertiserAttributes": 
        {
        "name": "Parkway West Midland"
        "phoneNumber1": 
          {
          "formattedPhoneNumber": "(0121) 3278777"
          "shouldAddAsteriskIfIsCallTrackerNumber": "false"
  }
        "phoneNumber2": 
          {
          "formattedPhoneNumber": "(0121) 3286744"
          "shouldAddAsteriskIfIsCallTrackerNumber": "false"
  }
        "alternativePhoneNumber": 
          {
          "formattedPhoneNumber": "(0121) 3278777"
          "shouldAddAsteriskIfIsCallTrackerNumber": "false"
  }
        "email": "sales@parkwaybirmingham.co.uk"
        "emailLink": "/redirect-email/advert/201401311453322/postcode/b82sl"
        "address1": "186b Drews Lane"
        "postcode": "B8 2SL"
        "town": "Birmingham"
        "county": "West Midlands"
  }
      "vehicleAttributes": 
        {
        "make": "FORD"
        "model": "FIESTA"
        "yearOfManufacture": "2001"
        "regLetter": "51"
        "transmission": "Manual"
        "fuelType": "Petrol"
        "bodyType": "Hatchback"
        "mileage": "105000"
        "engineSize": "1300"
        "derivative": "1.3 FLIGHT 3DR"
        "colour": "Red"
        "numDoors": "3 doors"
        "vrm": "DV51LTZ"
        "generationId": 11015
        "vehicleRegistrationDate": "2001-10-29"
        "quickQuoteInsuranceGroup": 6
        "vehicleMileageUnit": "M"
        "totalUserReviews": 254
        "userReviewRating": 414
        "vehicleCheck": "false"
        "co2Emissions": 171
  }
      "dealerAttributes": 
        {
        "id": "490131"
        "name": "Parkway West Midland"
        "email": "sales@parkwaybirmingham.co.uk"
        "address1": "186b Drews Lane"
        "postcode": "B8 2SL"
        "town": "Birmingham"
        "logoUrl": "http://dealerlogo.autotrader.co.uk/at2/adbranding/490131/images/searchlogo.gif"
        "websiteLink": "http://dmsgateway.autotrader.co.uk/api/advertiser/490131/redirect/advert/source/autotrader-desktop/autotrader-advert/201401311453322?website-link=http%3A%2F%2Fwww.parkwaybirmingham.co.uk"
        "oldDealerStockFlag": "N"
        "stockCount": 95
        "products": 
          {
          "0": "videoSlideShow"
          "1": "razsorMobile"
          "2": "carDealerStockView"
          "3": "associatedVehiclesCars"
          "4": "razsorEnhancedWebsite"
          "5": "standOutCars"
  }
        "additionalLinks": ""
        "promotionBullets": ""
        "backgroundColourBikes": "Blue"
        "backgroundColourCars": "Blue"
        "brandingImage": "header.jpg"
        "addressDisplayable": "true"
        "franchises": ""
        "structuredLocation": 
          {
          "county": 
            {
            "region": 
              {
              "numberOfAdverts": 0
              "name": "WEST MIDLANDS"
  }
            "numberOfAdverts": 0
            "name": "WEST MIDLANDS"
  }
          "numberOfAdverts": 0
          "name": "BIRMINGHAM"
  }
        "mobileWebsiteLink": "http://dmsgateway.autotrader.co.uk/api/advertiser/490131/redirect/advert/source/autotrader-desktop/autotrader-advert/201401311453322?website-link=http%3A%2F%2Fwww.parkwaybirmingham.co.uk"
        "numberOfReviews": "null"
  }
      "capTechSpecFlag": "Y"
    }
  }
  "totalResults": 2118
  }
"paginator": 
  {
  "currentPage": 1
  "totalResults": 2118
  "pageSet": 
    {
    "0": 
      {
      "displayName": "1"
      "value": "1"
      "selected": "true"
      "link": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1&Page_Number=1"
  }
    "1": 
      {
      "displayName": "2"
      "value": "2"
      "selected": "false"
      "link": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1&Page_Number=2"
  }
    "2": 
      {
      "displayName": "3"
      "value": "3"
      "selected": "false"
      "link": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1&Page_Number=3"
  }
    "3": 
      {
      "displayName": "First"
      "value": "1"
      "selected": "true"
      "link": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1&Page_Number=1"
  }
    "4": 
      {
      "displayName": "Next"
      "value": "2"
      "selected": "false"
      "link": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1&Page_Number=2"
  }
    "5": 
      {
      "displayName": "Last"
      "value": "2118"
      "selected": "false"
      "link": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1&Page_Number=2118"
    }
  }
  "resultsPerPage": 1
  }
"sortOrderInfo": 
  {
  "0": 
    {
    "Sort_Key": "Price"
    "Sort_Order": "Asc"
  }
  "1": 
    {
    "Sort_Key": "Price"
    "Sort_Order": "Desc"
  }
  "2": 
    {
    "Sort_Key": "Make"
    "Sort_Order": "Asc"
  }
  "3": 
    {
    "Sort_Key": "Model"
    "Sort_Order": "Asc"
  }
  "4": 
    {
    "Sort_Key": "Mileage"
    "Sort_Order": "Asc"
  }
  "5": 
    {
    "Sort_Key": "PaidFor"
    "Sort_Order": "Desc"
  }
  "6": 
    {
    "Sort_Key": "DealerName"
    "Sort_Order": "Asc"
  }
  "7": 
    {
    "Sort_Key": "DealerName"
    "Sort_Order": "Desc"
  }
  "8": 
    {
    "Sort_Key": "Distance"
    "Sort_Order": "Asc"
  }
  "9": 
    {
    "Sort_Key": "Age"
    "Sort_Order": "Asc"
  }
  "10": 
    {
    "Sort_Key": "Age"
    "Sort_Order": "Desc"
  }
  "11": 
    {
    "Sort_Key": "PlacementDate"
    "Sort_Order": "Asc"
  }
  "12": 
    {
    "Sort_Key": "PlacementDate"
    "Sort_Order": "Desc"
  }
  "13": 
    {
    "Sort_Key": "LocationPrice"
    "Sort_Order": "Asc"
  }
  "14": 
    {
    "Sort_Key": "AgePrice"
    "Sort_Order": "Asc"
  }
  "15": 
    {
    "Sort_Key": "MileagePrice"
    "Sort_Order": "Asc"
    }
  }
"requestInfo": 
  {
  "base-path": "http://sss.gen.tradermedia.net/sss"
  "image-base-path": "http://pictures2.autotrader.co.uk"
  "editorial-image-base-path": "http://www.autotrader.co.uk"
  "request-url": "http://sss.gen.tradermedia.net/sss/classified-adverts?Make=FORD&Model=Fiesta&Colour=Red&Page_Size=1"
  }
}

感谢你们的帮助,如果我需要在帖子中包含任何更改或内容,请发表评论。

最佳答案

由于不太清楚您尝试过什么,因此您可能会研究以下内容

JACKSON——一个 JSON 解析/生成系统。

或者一大堆其他实用程序。

编写自己的解析器会浪费时间。

实用程序可能会或可能不会涵盖从文件中读取内容,但您可以处理该问题 - 或者 Apache Commons 中可能有一些实用程序。

Jackson Reference

关于java - 使用 Java 从 JSON 中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634387/

相关文章:

javascript - 如何在 highcharts 中加载外部 json 数据以显示条形图

rest - 部署带有依赖项的 REST API

java - OKHttp句柄302

java - 如何以编程方式设置内容类型?获取 org.jvnet.mimepull.MIMEParsingException : Missing start boundary

java - 在不同时间调用类(class)时遇到问题

javascript - AngularJS Ui-grid DataTables,如何避免多次重复

iOS 表格 View 自动换行重叠

angularjs - Angular 嵌套 Promise 显示错误

c# - 在 C# 中将格式奇怪的 JSON 反序列化为对象

java - 使用id查找元素获取信息并添加到数组android java