标签: jsonobject

Android JSONObject:将Array添加到put方法

// JSON object to hold the information, which is sent to the server
JSONObject jsonObjSend = new JSONObject();
jsonObjSend.put("action", "myAction");
jsonObjSend.put("type", tipo);
Run Code Online (Sandbox Code Playgroud)

现在一切都好,但如果我想添加

jsonObjSend.put("elementi", arrayOfElements);
Run Code Online (Sandbox Code Playgroud)

其中arrayOf Elements必须是字符串数组.我能怎么做?

/ **编辑

我需要什么样的例子

{
  "action": "myAction",
  "type": "elementi",
  "elementi": [
    "3287498357",
    "23472857"
  ]
}
Run Code Online (Sandbox Code Playgroud)

java android jsonobject

8
推荐指数
1
解决办法
3万
查看次数

响应代码304和200时的排球异常错误

玩弄Volley库时,我注意到在进行POST时JsonObjectRequest,如果服务器返回代码304或200且响应中没有数据,则(response.data)Volley将其解释为错误响应,而不是成功.

我设法通过Response<JSONObject> parseNetworkResponse(NetworkResponse response)在类中的方法中添加几行代码来解决它JsonObjectRequest.java.

@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
    try {
        if (!response.notModified) {// Added for 304 response
            String jsonString = new String(response.data,
                    HttpHeaderParser.parseCharset(response.headers));
            return Response.success(new JSONObject(jsonString),
                    HttpHeaderParser.parseCacheHeaders(response));
        } else // Added for 304 response
            return Response.success(new JSONObject(),HttpHeaderParser.parseCacheHeaders(response));
    } catch (UnsupportedEncodingException e) {
        Log.v("Volley", "UnsupportedEncodingException " + response.statusCode);
        if (response.statusCode == 200)// Added for 200 response
            return Response.success(new JSONObject(), HttpHeaderParser.parseCacheHeaders(response));
        else
            return Response.error(new ParseError(e));
    } catch (JSONException je) {
        Log.v("Volley", "JSONException …
Run Code Online (Sandbox Code Playgroud)

android request http-status-code-304 android-volley jsonobject

8
推荐指数
1
解决办法
7963
查看次数

如何使用嵌套值发送JsonObject作为REST保证的Post请求

我放心使用 - https://code.google.com/p/rest-assured/wiki/Usage 我的JsonObject看起来像这样

{
"id": "12",
"employeeInfo": null,
"employerInfo": null,
"checkDate": 1395093997218,
"netAmount": {
"amount": 70,
"currency": "USD"
},
"moneyDistributionLineItems": [
{
"mAmount": 100,
"employeeBankAccountId": "BankAccount 1"
}
],
}
Run Code Online (Sandbox Code Playgroud)

如何使用REST保证的POST将其作为参数的一部分发送?我试过了

given().param("key1", "value1").param("key2", "value2").when().post("/somewhere").then().
        body(containsString("OK")); 
Run Code Online (Sandbox Code Playgroud)

但对于具有嵌套值的HUGE对象,这是不可扩展的.有更好的方法吗?

http-post rest-assured jsonobject

8
推荐指数
1
解决办法
1万
查看次数

AngularJS Django Rest Framework - 尝试复制在400服务器上引发的JS对象错误

这是我尝试注册用户时调用的Django Rest Framework代码/视图:

def post(self, request):
    serializer = UserSerializer(data=request.DATA)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

这是我的AngularJS代码,用于注册用户/调用上面发布的Django视图:

self.add = function() {
    $http.post("/CMS/users", self.user) // this URL calls the Django view posted above
    .error(function(data, status, headers, config) {
        console.log(data);
        for (prop in data) {
            console.log(data[prop]);
        };
    })
    .then(fetchUsers); // gets a list of existing users
    console.log("User clicked submit with ", self.user);
};
Run Code Online (Sandbox Code Playgroud)

当我尝试注册已经存在的用户时,这是记录的内容:

Object {username: Array[1]}
    username: Array[1]
        0: "This username is already taken. Please, try again"
        length: 1 …
Run Code Online (Sandbox Code Playgroud)

javascript django angularjs django-rest-framework jsonobject

8
推荐指数
1
解决办法
382
查看次数

删除JSON对象中的元素

我试图循环删除每个对象中的元素的对象列表.每个对象都是一个新行.我试图保存新文件,而不包含对象中包含的元素.我知道这可能是一项简单的任务,但我似乎无法完成这项工作.如果有人能提供帮助,将不胜感激.谢谢.

{
"business_id": "fNGIbpazjTRdXgwRY_NIXA",
"full_address": "1201 Washington Ave\nCarnegie, PA 15106",
"hours": {
    "Monday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Tuesday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Friday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Wednesday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Thursday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Saturday": {
        "close": "23:00",
        "open": "11:00"
    }
},
"open": true,
"categories": ["Bars", "American (Traditional)", "Nightlife", "Lounges", "Restaurants"],
"city": "Carnegie",
"review_count": 7,
"name": "Rocky's Lounge",
"neighborhoods": [],
"longitude": -80.0849416,
"state": "PA",
"stars": 4.0,
"latitude": …
Run Code Online (Sandbox Code Playgroud)

python jsonobject

8
推荐指数
1
解决办法
7万
查看次数

如何从没有特定名称的JSONObject获取String

请检查此代码示例.

HttpEntity getResponseEntity = getResponse.getEntity();

String message = EntityUtils.toString(getResponseEntity,"UTF-8");

//message = {"EntryPointJsonResult":"{\"NextTransactionUrl\":null,\"TraceId\":null,\"IsAuthorizationRequired\":false,\"IsError\":false,\"ErrorCode\":null,\"ErrorMessage\":null}"}

JSONObject object = new JSONObject(message);
String objectString = object.getString("EntryPointJsonResult"); 
//objectString = {\"NextTransactionUrl\":null,\"TraceId\":null,\"IsAuthorizationRequired\":false,\"IsError\":false,\"ErrorCode\":null,\"ErrorMessage\":null}               
Run Code Online (Sandbox Code Playgroud)

这就是问题:我希望得到没有"EntryPointJsonResult"的"objectString".导致此信息在另一个响应中有所不同.

那么如何在没有像"EntryPointJsonResult"这样的特定键的情况下获取"objectString"呢?

java android json jsonobject

7
推荐指数
1
解决办法
2万
查看次数

无论名称如何,JSONObject都获取第一个节点的值

我想知道是否有办法在不知道其名称的情况下获取JSONObject的第一个子节点的值:

我有一些JSON进来了一个名为的节点, this_guy

{"this_guy": {"some_name_i_wont_know":"the value i care about"}}
Run Code Online (Sandbox Code Playgroud)

使用JSONObject,如果我不知道孩子的名字,怎么能干净利落地得到"我关心的价值".我所知道的只是"this_guy",有人吗?

java android jsonobject

7
推荐指数
1
解决办法
2万
查看次数

jsonObject.addProperty方法是为它的值添加不必要的引号和斜杠

这是我的字符串

String currentTokenNo = "/SUeSjUf0A0aLFr+wVIZbw==\nLmmWtgHZ90yH0NBoATYB/A"
Run Code Online (Sandbox Code Playgroud)

我已将此字符串添加到我JsonObjectcom.google.gson.JsonObject 包中

  JsonObject jsonToSubmit = new JsonObject();

    try {

        jsonToSubmit.addProperty("token", currentTokenNo);

      } catch (Exception e) {

        e.printStackTrace();
     }
Run Code Online (Sandbox Code Playgroud)

但是当我记录我的StringJsonObject

Log.d("mainactivityjson", "Current Token No : "+currentTokenNo );
Log.d("mainactivityjson", "jsonToSubmit : "+jsonToSubmit);
Run Code Online (Sandbox Code Playgroud)

我找到了结果

D/mainactivityjson: Current Token No : "/SUeSjUf0A0aLFr+wVIZbw==\nLmmWtgHZ90yH0NBoATYB/A"
D/mainactivityjson: jsonToSubmit : {"token":"\"/SUeSjUf0A0aLFr+wVIZbw==\\nLmmWtgHZ90yH0NBoATYB/A\""}
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是:

为什么这些引号和斜杠被添加到值JsonObject?它有什么合适的理由吗?

它确实妨碍了在服务器端检查String值的过程.

我已经完成了一个临时的解决方案,通过从两侧修剪单个角色来完成任务,如下所示

jsonToSubmit.addProperty("token",currentTokenNo.substring(1,currentTokenNo.length()-1));
Run Code Online (Sandbox Code Playgroud)

这完美地运作但我不认为这对未来更好!

附加信息 :

变量currentTokenNo不是如上所示直接声明的,它是从SharedPreferences&检索到的.如果直接声明它,那么一切正常.

String currentTokenNo = preferences.getString(LOGINCRED_TOKEN,"");
Run Code Online (Sandbox Code Playgroud)

如果直接声明相同的变量,一切正常.

任何形式的帮助将不胜感激.

string android jsonobject

7
推荐指数
1
解决办法
1275
查看次数

在使用string实例化后,JSONObject返回非null值"null"

我需要下载JSON,然后将其存储在JSONObject中.

我正在使用org.json.JSONArray.

以下是一个地方的所有代码:

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class Test
{
    public static JSONObject getJSON()
    {
    try
    {
        URL uri = new URL("http://events.makeable.dk/api/getEvents");
        HttpURLConnection urlConnection = (HttpURLConnection) uri.openConnection();
        if (urlConnection.getResponseCode() != HttpURLConnection.HTTP_OK)
        {
            return null;
        }

        InputStream inputStream = urlConnection.getInputStream();

        if (inputStream != null)
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuffer buffer = new StringBuffer();

            try
            {
                String line;
                while ((line = br.readLine()) != null)
                { …
Run Code Online (Sandbox Code Playgroud)

java android jsonobject

7
推荐指数
1
解决办法
1531
查看次数

Java:通过Parse.com REST API将日期对象作为JSONObject发送

我正在尝试通过Parse的REST API在我的Parse.com数据库中使用HttpsUrlConnection创建一个新对象.他们的REST API只接受JSON.我已经完成了所有工作,数据库将接受新的对象条目 - 除了我尝试包含Date字段时.当我传入日期时,服务器完全拒绝该对象.

我在他们的文档中找到了这个描述,用于在使用REST API时如何在对象中添加Date字段:

Parse移动客户端库还支持日期,二进制数据和关系数据.在REST API中,这些值被编码为JSON哈希值,并且__type字段设置为指示其类型,因此如果使用正确的编码,则可以读取或写入这些字段.

Date类型包含一个字段iso,其中包含以ISO 8601格式存储的UTC时间戳,精度为毫秒级:YYYY-MM-DDTHH:MM:SS.MMMZ.

{
  "__type": "Date",
  "iso": "2011-08-21T18:02:52.249Z"
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我想创建一个新对象并将其传递给数据库,我假设我需要创建另一个JSONObject并将其传递到相应的字段中.然而,当我尝试时,它仍然拒绝它.下面是我尝试将Date对象添加为要传递的参数,存储在自己的JSONObject中.我究竟做错了什么?基于文档在JSON中发送Date对象的正确方法是什么?

//datePicked is a Calendar object
Date sendTime = datePicked.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
String sendTimeInUTC = formatter.format(sendTime);  

//Storing the Date object as a JSONObject, as specified
JSONObject dateAsObj = new JSONObject();
dateAsObj.put("__type", "Date");
dateAsObj.put("iso", sendTimeInUTC);

//jsonParam is the JSONObject that is being sent over to Parse's REST API
jsonParam.put("sendTime", dateAsObj);
Run Code Online (Sandbox Code Playgroud)

这是完整的函数,它产生http请求,用于上下文和引用:

private void runHttpRequest(final String emailAddress, final String password, …
Run Code Online (Sandbox Code Playgroud)

java json date parse-platform jsonobject

6
推荐指数
1
解决办法
1万
查看次数