2017-06-14 36 views
0

我喜歡食用以下如何設置從JSON消耗變量的strings.xml

[ 
    { 
     "Id": "BT00", 
     "Text": "Register" 
    }, 
    { 
     "Id": "BT01", 
     "Text": "Login" 
    }, 
    { 
     "Id": "BT02", 
     "Text": "Next" 
    }, 
    { 
     "Id": "BT03", 
     "Text": "Yes" 
    } 
] 

一個JSON,我希望把每一個物體內部string.xml如下

<string name="BT00">Register</string> 
<string name="BT01">Login</string> 
<string name="BT02">Next</string> 
<string name="BT03">Yes</string> 

嘗試使用以下文檔https://developer.android.com/guide/topics/resources/string-resource.html#StringArray來做到這一點,但不符合我想要完成的任務

任何人都有一個想法如何做到這一點?

更新:所提出的答案的差異,我的情況是面向Android和具體修改該文件夾的情況下,「資源」

+0

不幸的是'strings.xml'文件在運行時不能修改,[如此處所示](https://stackoverflow.com/a/9679336/8155603) – Tony

回答

1

好,爲此,你需要執行2個步驟。

  1. 將JSON對象數組轉換爲字符串數組。

  2. 解析字符串數組爲XML格式

This link可以幫助第一步。

或者,您可以將JSONobject數組轉換爲XML。 This link可以幫助

1

有更多同樣的問題,但對於你的問題,以JSON轉換爲XML的方法之一,例如:

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.XML; 

public class JsonToXML { 

    public static void main(String args[]) throws JSONException { 
     JSONArray json = new JSONArray("[" 
       + " {" 
       + "  \"Id\": \"BT00\"," 
       + "  \"Text\": \"Register\"" 
       + " }," 
       + " {" 
       + "  \"Id\": \"BT01\"," 
       + "  \"Text\": \"Login\"" 
       + " }," 
       + " {" 
       + "  \"Id\": \"BT02\"," 
       + "  \"Text\": \"Next\"" 
       + " }," 
       + " {" 
       + "  \"Id\": \"BT03\"," 
       + "  \"Text\": \"Yes\"" 
       + " }" 
       + "]"); 

     String xml = XML.toString(json); 
     System.out.println(xml); 
    } 
} 

OUTPUT:

<array> 
    <Text>Register</Text> 
    <Id>BT00</Id> 
</array> 
<array> 
    <Text>Login</Text> 
    <Id>BT01</Id> 
</array> 
<array> 
    <Text>Next</Text> 
    <Id>BT02</Id> 
</array> 
<array> 
    <Text>Yes</Text> 
    <Id>BT03</Id> 
</array> 
1

在運行時不能將任何字符串放入string.xml文件中。它只能從中讀取。這樣做的唯一方法就是先手動在strings.xml中聲明它,重新編譯並運行應用程序。你應該看看其他的選擇,比如將字符串保存到你的SharedPreferences中,或者如果你想存儲這些數據並保存它,可以使用SQLite。