2015-02-10 89 views
1
private JSONObject insertJSONintoJSON(JSONObject newJSON, JSONObject parent) 
{ 
    Object[] a = parent.values().toArray(); 
    JSONObject jsonObject2 = (JSONObject) a[1]; 
    Object[] b = jsonObject2.values().toArray(); 
    JSONObject folders = (JSONObject) b[2]; 

    Object[] c = folders.values().toArray(); 
    JSONArray folderss = (JSONArray) c[2]; 

    for (Object objc : folderss) 
    { 
     JSONObject tmp = (JSONObject) objc; 
     Object[] d = tmp.values().toArray(); 
     String name = (String) d[4]; 

     if (name.toUpperCase().equals("EXCHANGE")) 
     { 
      tmp = newJSON; 
      return parent; 
     } 
    } 

    return parent; 
} 

嗨更換的JSONObject,我想與new Value(newJSON)返回父,但父沒有它,tmp不改變價值。中的JSONObject

回答

0

那麼你可以嘗試處理它作爲一個字符串,只需將您的新對象插入父。

private static JSONObject insertObj(JSONObject parent, JSONObject child){ 
    String parentStr = parent.toString(); 
    parentStr = parentStr.substring(1);//remove the opening curly bracket { 
    String childStr = child.toString(); 
    childStr = childStr.substring(0, (childStr.length()-1)); 
    parentStr = childStr+","+parentStr; 
    JSONObject resultObj = new JSONObject(parentStr); 
    return resultObj; 
} 

這個,如果你已經添加子對象(因爲我們添加了一個逗號)之前有家長裏面的,至少1個鍵只會工作,但你可以照顧 與簡單的IF

編輯: 實際上更好的方法是

JSONObject parent = new JSONObject(); 
JSONObject child = new JSONObject(); 
parent.put("object name",child);