2011-09-06 25 views
6

Bất cứ khi nào tôi có đối tượng chuỗi Json với khoảng trống trong đó, tôi nhận được lỗi sau.Android: Chuỗi Json có dấu cách cho "Đối tượng không được sắp xếp tại" ngoại lệ

Java:

String jString = getResources().getString(R.string.event); 
JSONObject object = new JSONObject(jString); 

Json:

<resources> 
    <string name="event"> 
     {"Array":[{"Name":"One two three"},{"Name":"Two"},{"Name":"Three"}]} 
    </string> 
</resources> 

Tôi nhận được thông báo sau:

09-06 22:35:08.214: WARN/System.err(1079): org.json.JSONException: Unterminated object at character 21 of {Array:[{Name:One two three},{Name:Two},{Name:Three}]} 

này không có bất kỳ vấn đề:

<resources> 
    <string name="event"> 
     {"Array":[{"Name":"One"},{"Name":"Two"},{"Name":"Three"}]} 
    </string> 
</resources> 

Tôi có trích dẫn điều gì sai không?

EDIT: Đọc qua bài đăng của riêng tôi Tôi nhận thấy rằng thông báo lỗi không có bất kỳ dấu ngoặc kép nào xung quanh giá trị đối tượng chuỗi. Vì vậy, tôi đã thay đổi "thành \" trong chuỗi xml và nó hoạt động tốt. Bất kỳ ý tưởng làm thế nào để có nó không loại bỏ bất kỳ dấu ngoặc kép?

+0

xóa dấu cách và kiểm tra khi tên mảng một – Harsha

Trả lời

7

Đọc qua bài đăng của riêng tôi Tôi nhận thấy rằng thông báo lỗi không có bất kỳ dấu ngoặc kép nào xung quanh giá trị đối tượng chuỗi. Vì vậy, tôi đã thay đổi "thành \" trong chuỗi xml và nó hoạt động tốt.

1

Thử gói nó trong khối CDATA. Điều này sẽ ngăn chặn bất kỳ sự nhầm lẫn nào.

<resources> 
    <string name="event"><![CDATA[ 
     {"Array":[{"Name":"One two three"},{"Name":"Two"},{"Name":"Three"}]} 
    ]]></string> 
</resources> 
+1

Không, nó không hoạt động. –

+0

Không hoạt động. Không có dấu ngoặc kép sau khi đọc –

Các vấn đề liên quan