Json数字格式

时间:2015-03-05 13:14:27

标签: android json

我有以下代码:

JSONArray jsonArray = new JSONArray(new String(cod_bare));
    for (int i=0;i<jsonArray.length();  i++) 
        {
            cod_in_loop=jsonArray.getString(i);
            .....
        }

code_bare = [085845,0547561 ....]

问题是cod_in_loop显示没有de 0 =&gt;的数字。 085845它以cod_in_loop结尾,仅为85845.我需要完整的数字&#34; 085845&#34;

怎么办?

2 个答案:

答案 0 :(得分:4)

问题是JSON,而不是代码。如果你的JSON真的是

[085845,0547561....]

然后无效;在JSON中,除非0后面紧跟0(例如.),否则不允许您使用0.1开始一个号码,我们可以从http://json.org的便利图中看到:

enter image description here

...以及the RFC中的此文字:

  

数字的表示与大多数数字的表示相似   编程语言。数字用10表示   十进制数字。它包含可能的整数组件   以可选的减号为前缀,后面可以跟一个   分数部分和/或指数部分。 领先的零不是   允许的。

(我的重点)

所以这里的修复是纠正JSON。如果你想保留前导零,那么这几乎意味着你正在处理的东西不是一个数字,它是一系列数字 - 例如一个字符串,所以:

["085845","0547561"....]

答案 1 :(得分:0)

 I need the full number "085845"

我无法理解您使用Json的原因。如果code_barString,我认为您必须split the string

//java code
String code_bar = "[1,2,3,4,5,6"];
        String[] arrayNumbers = code_bar .split(",");
        for (int i = 0; i < arrayNumbers .length; i++) {
            System.out.println(arrayNumbers [i]);
        }

**您必须为删除"[""]"

添加内容

最后,如果您需要使用json,则必须在{中添加}code_bar

//c# code:
var array = JArray.Parse(code_bar.Trim('{', '}'));
List<String> listNumbers = array.ToObject<List<String>>();