Не удается разрешить JSONParser - PullRequest
0 голосов
/ 10 июня 2019

Я работаю над селеновым веб-драйвером, я создал файл JSON, но когда я читаю данные из этого файла с помощью JSONParser, eclipse выдает ошибку «JSONParser не может быть преобразован в тип» Снимок экрана enter image description here

мой код как дано -

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.ParseException;
import java.util.Scanner;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.simple.parser.JSONParser;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import ru.sbtqa.tag.parsers.JsonParser; 


public class First {


 static void user_auth()throws JSONException
{
        Scanner in = new Scanner ( System.in) ;
        String username , password ;
        System.out.println ("Enter username(reg. no.):-");
        username = in.next();
        System.out.println (" Enter password:-");
        password = in.next();
        JSONObject obj = new JSONObject() ;
        obj.put("USERNAME" ,username  ) ;
        obj.put("PASSWORD" ,password  ) ;
        try (FileWriter file = new FileWriter("data.json"))
        {
            file.write(obj.toString());
        }
        catch ( IOException ex )
        {
            System.out.println(ex);
        }


}
public static void main ( String args [ ] )
{
    // checking if the file exists or not 
    // If it is first time 
    File f = new File("./data.json");
    if(f.exists() == false && f.isDirectory()== false ) { 
        System.out.println("It's your first time...");
        user_auth();
    }


    System.setProperty("webdriver.chrome.driver","/usr/bin/chromedriver");
    WebDriver driver = new ChromeDriver();
    String url = "http://14.139.108.229/W27/login.aspx?ReturnUrl=%2fw27%2fMyInfo%2fw27MyInfo.aspx" ;
    driver.get(url);
    int attempt = 2 ;

    while ( attempt > 0  )
    {
            if ( attempt != 2 )
                user_auth();
            String name , password ;
            try
            {
                FileReader file = new FileReader ( "data.json") ;
                JSONParser parser = new JSONParser (file);
                Object obj = new Object (parser) ;
                JSONObject jsonobj = (JSONObject) obj ;
                name = (String)jsonobj.get("USERNAME");
                password = (String)jsonobj.get("PASSWORD");
            }
            catch(FileNotFoundException e ) { e.printStackTrace();}
            catch(IOException e ) { e.printStackTrace();}
            catch(ParseException e ) { e.printStackTrace();}
            catch(Exception e ) { e.printStackTrace();}
            driver.findElement(By.xpath("//*[@id=\"txtUserName\"]")).sendKeys(name);
            driver.findElement(By.xpath("//*[@id=\"Password1\"]")).sendKeys(password);
            WebElement button =  driver.findElement(By.xpath("//*[@id=\"Submit1\"]"));
            button.click();
            if ( driver.getCurrentUrl() == url )
            {
                attempt -- ;
                driver.findElement(By.xpath("//*[@id=\\\"txtUserName\\\"]")).clear();
                try
                {
                    FileReader file = new FileReader ( "data.json") ;
                    JSONParser parser = new JSONParser (file);
                    Object obj = new Object (parser) ;
                    JSONObject jsonobj = (JSONObject) obj ;
                    jsonobj .remove(jsonobj.toString());
                    if ( attempt == 0 )
                    {
                        System.out.println("Wrong UserName or Password");
                        driver.close();
                        System.exit(0);
                    }
                    System.out.println("ry Re-Login");

                }
                catch(FileNotFoundException e ) { e.printStackTrace();}
                catch(IOException e ) { e.printStackTrace();}
                catch(ParseException e ) { e.printStackTrace();}
                catch(Exception e ) { e.printStackTrace();}
            }
            else break ;
    }

}       

}

Я видел этот вопрос и этот тоже но это не решает мою проблему

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Здесь, поскольку вы сталкиваетесь с ошибкой типа; JSONParser показывает «Конструктор JSONParser () устарел», потому что вы не использовали его правильно, чтобы получить данные файла JSON, которые я разместил ниже в примере кода, где вы можете получить идею.

import java.io.FileReader;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class JsonFileReader {
    public static void main(String[] args) {
        try {
            JSONParser parser = new JSONParser();
            JSONObject obj = (JSONObject)parser.parse(new FileReader("L:/data.json"));
            String name = (String) obj.get("USERNAME");
            String password = (String) obj.get("PASSWORD");
            System.out.println("Name: " + name);
            System.out.println("Password: " + password);
        } catch (Exception ex) {
            System.out.println("Exception: "+ ex.getMessage());
        }
    }
}

примечание: здесь я использовал тот же файл "json-simple-1.1.1.jar".

Файл: data.json

{
      "USERNAME": "abc",
      "PASSWORD": "xyz"
}
0 голосов
/ 10 июня 2019

Похоже, вам не хватает зависимости json-simple.

1) Вот ссылка JSON.simple »1.1.1 , где вы можете скачать отсутствующую зависимость.

2) Добавить загруженную зависимость enter image description here enter image description here

3) Еслиу вас есть проект maven или gradle, затем скопируйте строку зависимостей. enter image description here

4) Затем выполните чистую сборку проекта и увидите магию.

...