Java Json在android中返回空

Java Json在android中返回空,java,android,json,sqlite,Java,Android,Json,Sqlite,我创建了这个类,并用json创建了数据。当我尝试在数据库sqLite中插入数据时,它似乎不起作用并返回空。这是创建Json的类: public class Corsa { public Corsa corsaData = null; public int id = 0; public String oraPartenza; public String oraArrivo; public String partenza; public String

我创建了这个类,并用json创建了数据。当我尝试在数据库sqLite中插入数据时,它似乎不起作用并返回空。这是创建Json的类:

public class Corsa
 {
    public Corsa corsaData = null;
    public int id = 0;
    public String oraPartenza;
    public String oraArrivo;
    public String partenza;
    public String arrivo;
    public String codiceLinea;
    public String codiceCorsa;
    public String tipoCorsa;
    public String linkDettaglio;

    @Override
    public String toString() {
        return partenza + " / "+  oraPartenza + "\n" + arrivo + " / " +oraArrivo;

    }

    public Corsa() {

    }

    /** Json **/

    public static Corsa LoadJson(String jsonStr)
    {
        Corsa corsaJson = new Corsa();
        try 
        {
            JSONObject jObj = new JSONObject(jsonStr);

            corsaJson.oraPartenza = HtmlUtils.getJSonString(jObj, "oraPartenza");
            corsaJson.oraArrivo = HtmlUtils.getJSonString(jObj, "oraArrivo");
            corsaJson.partenza = HtmlUtils.getJSonString(jObj, "partenza");
            corsaJson.arrivo = HtmlUtils.getJSonString(jObj, "arrivo");
            corsaJson.linkDettaglio = HtmlUtils.getJSonString(jObj, "linkDettaglio");
            corsaJson.codiceCorsa = HtmlUtils.getJSonString(jObj, "codiceCorsa");
            corsaJson.codiceLinea = HtmlUtils.getJSonString(jObj, "codiceLinea");

        } 
        catch (Exception e)  { e.printStackTrace(); }
        return corsaJson;
    }

    public static JSONObject CreateJSon(Corsa corsaJson)
    {
        JSONObject jObj = new JSONObject();
        try 
        {   
            jObj.put("oraPartenza", corsaJson.oraPartenza);
            jObj.put("oraArrivo", corsaJson.oraArrivo);
            jObj.put("partenza", corsaJson.partenza);
            jObj.put("arrivo", corsaJson.arrivo);
            jObj.put("linkDettaglio", corsaJson.linkDettaglio);
            jObj.put("codiceCorsa", corsaJson.codiceCorsa);
            jObj.put("codiceLinea", corsaJson.codiceLinea);

        } catch (Exception e) { e.printStackTrace(); }

        return jObj;
    }
}
这是保存的json:

public static void SaveCorsa(Context context, Corsa c)
{
    DeleteCorsa(context, c);
    SqlHelper dbHelper = null;
    try {

        dbHelper = new SqlHelper(context);
        SQLiteDatabase database = dbHelper.getWritableDatabase();

        ContentValues initialValues = new ContentValues();
        initialValues.put("CORSA_DATA", Corsa.CreateJSon(c.corsaData).toString());

        database.insert(TABLE_PREFERITI, null, initialValues);

        Log.d("Insert preferiti", initialValues.toString());

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (dbHelper!=null) dbHelper.close();
    }
}

logCat返回CORSA_DATA{}..因此它是空的。。但这很奇怪,因为这是在活动中创造的。你知道怎么了吗?谢谢

我建议您使用PHP完成Json部分,并使用MySQL数据库。毕竟,您可以直接在SQLite中调用/保存,而无需使用Json。我认为问题在于您没有指定json文件的保存/调用位置。读一读关于安卓的资产文件夹,MMH,你需要考虑一件我没有写的事情。这些数据是从jsoup解析中从web获取的。。我想,在解析完成之前,Corsa类是空的,对象是空的。。因为它们还没有被解析。。所以json也是空的。。可能吗?哦,我明白了,那么您应该在执行之前检查json,例如:ifjObj==null//dothis..mmh..where确切位置?在CreateJson中,检查所有json对象以防止出现空指针异常,我认为您的问题是jsoup/Corsa没有很好地检索url。这就是你的全部密码吗?