I create this example so you can generate:
a valid json file using Gson lib.
read this file and converted it to Object Array java
I hope that's help you 
Job Class :
public class Job {
    private String site;
    private String name;
    public Job() {
    }
    public String getSite() {
        return site;
    }
    public void setSite(String site) {
        this.site = site;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Job [site=");
        builder.append(site);
        builder.append(", name=");
        builder.append(name);
        builder.append("]");
        return builder.toString();
    }
}
Class Language :
public class Language {
    private String lang;
    private String knowledge;
    public Language() {
    }
    public String getLang() {
        return lang;
    }
    public void setLang(String lang) {
        this.lang = lang;
    }
    public String getKnowledge() {
        return knowledge;
    }
    public void setKnowledge(String knowledge) {
        this.knowledge = knowledge;
    }
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Language [lang=");
        builder.append(lang);
        builder.append(", knowledge=");
        builder.append(knowledge);
        builder.append("]");
        return builder.toString();
    }
}
Personne class :
    import java.util.List;
public class Personne {
    private int id;
    private String firstname;
    private List<Language> languages;
    private Job job;
    public Personne() {
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getFirstname() {
        return firstname;
    }
    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }
    public List<Language> getLanguages() {
        return languages;
    }
    public void setLanguages(List<Language> languages) {
        this.languages = languages;
    }
    public Job getJob() {
        return job;
    }
    public void setJob(Job job) {
        this.job = job;
    }
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Personne [id=");
        builder.append(id);
        builder.append(", firstname=");
        builder.append(firstname);
        builder.append(", languages=");
        builder.append(languages);
        builder.append(", job=");
        builder.append(job);
        builder.append("]");
        return builder.toString();
    }
}
Main Class:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
public class JsonGenerate {
    public static void main(String[] args) throws IOException {
        List<Personne> personnes = new ArrayList<Personne>();
        List<Language> languages = new ArrayList<Language>();
        Job job  = new Job();
        Language lang = new Language();
        Personne per = new Personne();
        lang.setLang("en");
        lang.setKnowledge("proficient");
        languages.add(lang);
        lang = new Language();
        lang.setLang("fr");
        lang.setKnowledge("advanced");
        languages.add(lang);
        job.setName("Java Code Geeks");
        job.setSite("www.javacodegeeks.com");
        per.setFirstname("Katerina");
        per.setId(1);
        per.setJob(job);
        per.setLanguages(languages);
        personnes.add(per);
        languages = new ArrayList<Language>();
        per = new Personne();
        lang = new Language();
        lang.setLang("fr");
        lang.setKnowledge("average");
        languages.add(lang);
        lang = new Language();
        lang.setLang("hn");
        lang.setKnowledge("advanced");
        languages.add(lang);
        job.setName("Php Code Geeks");
        job.setSite("www.example.com");
        per.setFirstname("Kati");
        per.setId(2);
        per.setJob(job);
        per.setLanguages(languages);
        personnes.add(per);
        //System.out.println(personnes.toString());
         Writer writer = new FileWriter("Output.json");
         Gson gson = new GsonBuilder().create();
         gson.toJson(personnes, writer);
         writer.close();
         BufferedReader bufferedReader = new BufferedReader(new FileReader("Output.json"));
         Type collectionType = new TypeToken<List<Personne>>() {}.getType();
        //convert the json string back to object
        List<Personne> obj = gson.fromJson(bufferedReader, collectionType);
        System.out.println(obj);
    }
}