类型的值STRING_TOO_LARGE

时间:2019-01-02 14:10:43

标签: java android json string

我有一个不会转换为json数组的字符串:

 {
        \"mantra\": \"प्रातः एवं सांयकालमा आरतीगर्दा भन्ने श्लोक\",
        \"mantra_detail\": \"ॐ जय जगदिश हरे, प्रभु जय जगदिश हरे \n ”प्रभुका चरण उपासक”  ”हरिका चरण उपासक” कति कति पार तरे ।। १ ।।  \nॐ जय जगदिश हरे \n \nमनको थाल मनोहर ”प्रेमरुप वाती”२ ।। प्रभु ।। \n”भाव कपूर छ मड्डल”२ आरती सब भाती ।। २ ।। \nॐ जय जगदिश हरे \n \nनित्य नीरञ्जन निर्मल ”कारण अविनाशी”२ ।। प्रभु ।। \n”शरणागत प्रतिपालक”२ चिन्मय सुखराशि ।। ३ ।। \nॐ जय जगदिश हरे \n \nसृष्टि–स्थिति, लयकर्ता, ”त्रिभुवनका स्वामी”२ ।। प्रभु ।। \n”भक्ति सुधा वर्षाउ” ”प्रेम सुधा वर्षाउ” \n शरण पर्यौं  हामी ।। ४ ।। \n ॐ जय जगदिश हरे \n \nआसुरभाव निवारक, ”तारक सुखदाता”२ ।। प्रभु ।। \n”गुण अनुरुप तिमी हौ”२ हरिहर औ धाता ।। ५ ।। \nॐ जय जगदिश हरे \n \nयुग युग पालन गर्छौ, ”अगणित रुप धरी”२ ।। प्रभु ।। \n”लीलामय रस विग्रह”२ करुणा मूर्ति हरि ।। ६ ।। \nॐ जय जगदिश हरे \n \nसमता शान्ति प्रदायक, ”सज्जन हितकारी”२ ।। प्रभु ।। \n”चरण शरण अब पाउ”२ प्रभु भव भयहारी ।। ७ ।। \nॐ जय जगदिश हरे \n \nभाव मनोहर देउ, ”साधक फलदायी”२ ।। प्रभु ।। \n”जीवन धन्य बनोस्”२ प्रभु पद सेवा पाई ।। ८ ।। \nॐ जय जगदिश हरे \n \nसंयम सुर–सरिताको, ”अविरल धार बहोस्”२ ।। प्रभु ।। \n”जति जति जन्म भएपनि” जहा जहा जन्म भएपनि” \n प्रभुमा प्रेम रहोस् ।। ९ ।। \n ॐ जय जगदिश हरे \n \nप्रेम सहित शुभ आरती, ”जसले नित्य गर्यो”२ ।। प्रभु ।। \n”दिन दिन निर्मल बन्दै” ”प्रतिदिन पावन बन्दै” \nत्यो भव सिन्धु तर्यो ।। १० ।। \nॐ जय जगदिश हरे, प्रभु जय जगदिश हरे..\"
    },

我的代码:

private Observable<List<MantraDTO>> getMantraObservable() {
    return Observable.just(1).map(integer -> getMantraList(getMantraStringFromXml()));
}

public String getMantraStringFromXml(){
    return  getActivity().getString(R.string.mantra);
}

public  List<MantraDTO> getMantraList(String mantraString) {
    List<MantraDTO> mantraList = new ArrayList<>();

    try {
        JSONArray mantraJsonData = new JSONArray(mantraString);
        int length = mantraJsonData.length();
        for (int i = 0; i < length; i++) {
            mantraList.add(parseMantra(mantraJsonData.optJSONObject(i)));

        }
    } catch (JSONException e) {

        e.printStackTrace();
    }
}

这给了我错误:

  

W / System.err:org.json.JSONException:类型的值STRING_TOO_LARGE
  java.lang.String无法转换为JSONArray           在org.json.JSON.typeMismatch(JSON.java:111)           在org.json.JSONArray。(JSONArray.java:96)           在org.json.JSONArray。(JSONArray.java:108)           在com.toyanathpatro.gurkha.fragments.MantraFragment.getMantraList(MantraFragment.java:153)           在com.toyanathpatro.gurkha.fragments.MantraFragment.lambda $ getMantraObservable $ 0 $ MantraFragment(MantraFragment.java:106)

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

尝试此操作将从该字符串中删除字符,例如“ \”字符。    json = json.replace(“ \\”“,”'“); JSONObject jo =新的JSONObject(json.substring(1,json.length()-1));