Вопросы по тегу: json

(73)

Python – преобразовать массив байтов в формат JSON

Я хочу проанализировать строку bytes в формате JSON, чтобы преобразовать ее в объекты python. Вот исходник, который у меня есть:my_bytes_value = b'[{\'Date\': \'2016-05-21T21:35:40Z\', \'CreationDate\': \'2012-05-05\', \'LogoType\': \'png\', \'Ref\': 164611595, \'Classe\': [\'Email addresses\', \'Passwords\'],\'Link\':\'http://some_link.com\'}]' И это желаемый результат, который я хочу получить:[{ "Date": "2016-05-21T21:35:40Z", "CreationDate": "2012-05-05", "LogoType": "png", "Ref": 164611595, "Classes": [ "Email addresses", "Passwords" ], "Link": "http://some_link.com"}] Сначала я преобразовал байты в строку:my_new_string_value = my_bytes_value.decode("utf-8") , но когда я пытаюсь вызвать loads, чтобы разобрать его как JSON:my_json = json.loads(my_new_string_value) Я получаю эту ошибку:json.decoder.JSONDecodeError: Expecting value: line 1 column 174 (char 173)
M

Merouane Benthameur

5 лет назад

Ответов: 4

ASP.NET Core 3.0 System.Text.Json Сериализация случая верблюда

В проекте веб-API ASP.NET Core 3.0, как указать System.Text.Json параметры сериализации для автоматической сериализации/десериализации свойств Pascal Case в Camel Case и наоборот?Дана модель со свойствами Pascal Case, такими как:public class Person { public string Firstname { get; set; } public string Lastname { get; set; } } И код для использования System.Text.Json для десериализации строки JSON до типа Person class:var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}"; var person = JsonSerializer.Deserialize(json); Десериализация невозможна, если JsonPropertyName не используется с каждым свойством, например:public class Person { [JsonPropertyName("firstname")] public string Firstname { get; set; } [JsonPropertyName("lastname")] public string Lastname { get; set; } } Я попробовал следующее в startup.cs, но это не помогло с точки зрения необходимости JsonPropertyName:services.AddMvc().AddJsonOptions(options => { options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase; options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; }); // also the following given it's a Web API project services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase; options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; }); Как настроить сериализацию/десериализацию Camel Case в ASP.NET Core 3.0 с использованием нового пространства имен System.Text.Json?Спасибо!
A

Alexander Staroselsky

2 года назад

Ответов: 6

Как декодировать свойство с типом словаря JSON в декодируемом протоколе Swift [45]

Допустим, у меня есть тип данных Клиент, который содержит свойство метаданные, которое может содержать любой словарь JSON в объекте клиентаstruct Customer { let id: String let email: String let metadata: [String: Any] } { "object": "customer", "id": "4yq6txdpfadhbaqnwp3", "email": "john.doe@example.com", "metadata": { "link_id": "linked-id", "buy_count": 4 } } Свойство metadata может быть любым произвольным объектом карты JSON.Прежде чем я смогу привести свойство из десериализованного JSON из NSJSONDeserialization, но с новым протоколом Swift 4 Decodable, я до сих пор не могу придумать, как это сделать.* 100006*Кто-нибудь знает, как добиться этого в Swift 4 с декодируемым протоколом?
P

Pitiphong Phongpattranont

5 лет назад

Ответов: 14

Изменить ключ-значение в json, используя jq на месте

У меня есть json, в котором я хочу изменить определенное значение, но терминал всегда отображает json с измененным значением, но фактически не изменяет значение в конкретном файле. Пример json:{ name: 'abcd', age: 30, address: 'abc' } Я хочу изменить значение адреса в самом файле, но пока не могу этого сделать. Я пытался использовать:jq '.address = "abcde"' test.json , но это не сработало. Есть предложения?
w

wolfsbane

5 лет назад

Ответов: 7

Как десериализовать список объектов из json во флаттере

Я использую пакет dart json_serializable для сериализации json. Глядя на документацию по флаттеру, он показывает, как десериализовать один объект следующим образом:Future fetchPost() async { final response = await http.get('https://jsonplaceholder.typicode.com/posts/1'); if (response.statusCode == 200) { // If the call to the server was successful, parse the JSON return Post.fromJson(json.decode(response.body)); } else { // If that call was not successful, throw an error. throw Exception('Failed to load post'); } } Однако я недостаточно знаком с dart, чтобы понять, как сделать то же самое для списка элементов вместо одного экземпляра.
G

Gainz

4 года назад

Ответов: 10

Зачем вам использовать строку в JSON для представления десятичного числа

Некоторые API, например paypal API, используют строковый тип в JSON для представления десятичного числа. Итак, "7,47" вместо 7,47.Почему/когда лучше использовать числовое значение json? AFAIK тип числового значения обеспечивает бесконечную точность, а также научную запись.
k

kag0

6 лет назад

Ответов: 4

Как сопоставить вложенное значение со свойством, используя аннотации Джексона?

Допустим, я обращаюсь к API, который отвечает следующим JSON для продукта:{ "id": 123, "name": "The Best Product", "brand": { "id": 234, "name": "ACME Products" } } Я могу прекрасно сопоставить идентификатор и название продукта, используя аннотации Джексона:public class ProductTest { private int productId; private String productName, brandName; @JsonProperty("id") public int getProductId() { return productId; } public void setProductId(int productId) { this.productId = productId; } @JsonProperty("name") public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public String getBrandName() { return brandName; } public void setBrandName(String brandName) { this.brandName = brandName; } } А затем с помощью метода fromJson создать продукт: JsonNode apiResponse = api.getResponse(); Product product = Json.fromJson(apiResponse, Product.class); Но теперь я пытаюсь выяснить, как получить название бренда, которое является вложенным свойством. Я надеялся, что что-то вроде этого сработает: @JsonProperty("brand.name") public String getBrandName() { return brandName; } Но, конечно же, нет. Есть ли простой способ выполнить то, что я хочу, используя аннотации? Фактический ответ JSON, который я пытаюсь разобрать, очень сложен, и я не хочу создавать новый класс для каждого подузла, хотя мне нужно только одно поле.
k

kenske

6 лет назад

Ответов: 7

Как декодировать вложенную структуру JSON с помощью протокола Swift Decodable?

Вот мой JSON{ "id": 1, "user": { "user_name": "Tester", "real_info": { "full_name":"Jon Doe" } }, "reviews_count": [ { "count": 4 } ] } Вот структура, которую я хочу сохранить (неполная)struct ServerResponse: Decodable { var id: String var username: String var fullName: String var reviewCount: Int enum CodingKeys: String, CodingKey { case id, // How do i get nested values? } } Я просмотрел документацию Apple по расшифровке вложенных структур, но до сих пор не понимаю, как правильно выполнять различные уровни JSON. Будем признательны за любую помощь.
J

Just a coder

5 лет назад

Ответов: 6

Служба Angular 5 для чтения локального файла .json

Я использую Angular 5 и создал сервис с помощью angular-cliЯ хочу создать службу, которая читает локальный файл json для Angular 5.Это то, что у меня есть... Я немного застрял...import { Injectable } from '@angular/core'; import { HttpClientModule } from '@angular/common/http'; @Injectable() export class AppSettingsService { constructor(private http: HttpClientModule) { var obj; this.getJSON().subscribe(data => obj=data, error => console.log(error)); } public getJSON(): Observable { return this.http.get("./assets/mydata.json") .map((res:any) => res.json()) .catch((error:any) => console.log(error)); } } Как мне это закончить?
u

user8770372

4 года назад

Ответов: 9

How do I use custom keys with Swift 4's Decodable protocol?

Swift 4 introduced support for native JSON encoding and decoding via the Decodable protocol. How do I use custom keys for this? E.g., say I have a struct struct Address:Codable { var street:String var zip:String var city:String var state:String } I can encode this to JSON. let address = Address(street: "Apple Bay Street", zip: "94608", city: "Emeryville", state: "California") if let encoded = try? encoder.encode(address) { if let json = String(data: encoded, encoding: .utf8) { // Print JSON String print(json) // JSON string is { "state":"California", "street":"Apple Bay Street", "zip":"94608", "city":"Emeryville" } } } I can encode this back to an object. let newAddress: Address = try decoder.decode(Address.self, from: encoded) But If I had a json object that was { "state":"California", "street":"Apple Bay Street", "zip_code":"94608", "city":"Emeryville" } How would I tell the decoder on Address that zip_code maps to zip? I believe you use the new CodingKey protocol, but I can't figure out how to use this.
c

chrismanderson

5 лет назад

Ответов: 4

ASP.NET Core return JSON with status code

I'm looking for the correct way to return JSON with a HTTP status code in my .NET Core Web API controller. I use to use it like this:public IHttpActionResult GetResourceData() { return this.Content(HttpStatusCode.OK, new { response = "Hello"}); } This was in a 4.6 MVC application but now with .NET Core I don't seem to have this IHttpActionResult I have ActionResult and using like this:public ActionResult IsAuthenticated() { return Ok(Json("123")); } But the response from the server is weird, as in the image below:I just want the Web API controller to return JSON with a HTTP status code like I did in Web API 2.
R

Rossco

5 лет назад

Ответов: 12

С JSONDecoder в Swift 4 могут ли отсутствующие ключи использовать значение по умолчанию вместо того, чтобы быть необязательными свойствами?

Swift 4 добавил новый протокол Codable. Когда я использую JSONDecoder, кажется, что все необязательные свойства моего класса Codable должны иметь ключи в JSON, иначе возникает ошибка.Делать каждое свойство моего класса необязательным кажется ненужной проблемой, поскольку я действительно хочу использовать значение в json или значение по умолчанию. (Я не хочу, чтобы свойство было равно нулю.)Есть способ сделать это?class MyCodable: Codable { var name: String = "Default Appleseed" } func load(input: String) { do { if let data = input.data(using: .utf8) { let result = try JSONDecoder().decode(MyCodable.self, from: data) print("name: \(result.name)") } } catch { print("error: \(error)") // `Error message: "Key not found when expecting non-optional type // String for coding key \"name\""` } } let goodInput = "{\"name\": \"Jonny Appleseed\" }" let badInput = "{}" load(input: goodInput) // works, `name` is Jonny Applessed load(input: badInput) // breaks, `name` required since property is non-optional
z

zekel

5 лет назад

Ответов: 7

java.net.SocketException: сбой сокета: EPERM (операция не разрешена)

Я работаю над проектом Android Studio с несколькими видами деятельности. В настоящее время я пытаюсь прочитать вывод Java-сервлета на локальном хосте, но, похоже, он дает сбой из-за разрешения сокета.Я создал новый проект, использовал тот же самый код и отлично работал. Поэтому я не понимаю, почему не хочу работать над моим проектом.public class LoginActivity extends AppCompatActivity { String apiUrl = "http://10.0.2.2:8080/ProyectService/Servlet?action=login"; EditText username; EditText password; AlertDialog dialog; Usuario session; @Override public void onCreate(Bundle savedInstanceState) { // Inicializacion de ventana super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); getSupportActionBar().hide(); // Inicializacion de componentes username = findViewById(R.id.username); password = findViewById(R.id.password); // Inicializacion de funcionalidad de botones Button button= (Button) findViewById(R.id.login); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { UserLoginTask mAuthTask = new UserLoginTask(); mAuthTask.execute(); } }); password = findViewById(R.id.password); createAlertDialog("Usuario o Contraseña Incorrectos"); } private void createAlertDialog(String message){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(message) .setTitle("Error"); dialog = builder.create(); } // ASYNCRONUS NETWORK PROCESS public class UserLoginTask extends AsyncTask { @Override protected void onPreExecute() { } @Override protected String doInBackground(String... params) { // implement API in background and store the response in current variable String current = ""; try { URL url; HttpURLConnection urlConnection = null; try { url = new URL(apiUrl); System.out.println(apiUrl); urlConnection = (HttpURLConnection) url .openConnection(); InputStream in = urlConnection.getInputStream(); InputStreamReader isw = new InputStreamReader(in); int data = isw.read(); while (data != -1) { current += (char) data; data = isw.read(); //System.out.print(current); } System.out.print(current); // return the data to onPostExecute method return current; } catch (Exception e) { e.printStackTrace(); } finally { if (urlConnection != null) { urlConnection.disconnect(); } } } catch (Exception e) { e.printStackTrace(); return "Exception: " + e.getMessage(); } return current; } } protected void onPostExecute(String success) { Log.i(success, ""); //attemptLogin(); } } Я ожидаю, что он прочитает данные, но он вылетает на этой строке: InputStream in = urlConnection.getInputStream(); Это вывод ошибки:java.net.SocketException: socket failed: EPERM (Operation not permitted) at java.net.Socket.createImpl(Socket.java:492) at java.net.Socket.getImpl(Socket.java:552) at java.net.Socket.setSoTimeout(Socket.java:1180) at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:143) at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116) at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186) at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:248) at com.example.controller.LoginActivity$UserLoginTask.doInBackground(LoginActivity.java:114) at com.example.controller.LoginActivity$UserLoginTask.doInBackground(LoginActivity.java:93) at android.os.AsyncTask$3.call(AsyncTask.java:378) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)
A

Aaron Villalobos

3 года назад

Ответов: 14

Использование setTimeout в цепочке обещаний

Здесь я пытаюсь обернуть голову вокруг обещаний. Здесь по первому запросу я получаю набор ссылок, а по следующему запросу я получаю содержимое первой ссылки. Но я хочу сделать задержку перед возвратом следующего объекта обещания. Поэтому я использую на нем setTimeout. Но это дает мне следующую ошибку JSON (без setTimeout () он работает нормально) SyntaxError: JSON.parse: неожиданный символ в строке 1 столбца 1 данные JSON я хотел бы знать, почему это не удается?let globalObj={}; function getLinks(url){ return new Promise(function(resolve,reject){ let http = new XMLHttpRequest(); http.onreadystatechange = function(){ if(http.readyState == 4){ if(http.status == 200){ resolve(http.response); }else{ reject(new Error()); } } } http.open("GET",url,true); http.send(); }); } getLinks('links.txt').then(function(links){ let all_links = (JSON.parse(links)); globalObj=all_links; return getLinks(globalObj["one"]+".txt"); }).then(function(topic){ writeToBody(topic); setTimeout(function(){ return getLinks(globalObj["two"]+".txt"); // without setTimeout it works fine },1000); });
A

AL-zami

5 лет назад

Ответов: 6

Класс данных Kotlin от Json с использованием GSON

У меня есть класс Java POJO вроде этого:class Topic { @SerializedName("id") long id; @SerializedName("name") String name; } и у меня есть класс данных Kotlin, например data class Topic(val id: Long, val name: String) Как предоставить ключ json любым переменным класса данных kotlin, например аннотации @ SerializedName в переменных java?
e

erluxman

5 лет назад

Ответов: 3

Отказано в выполнении скрипта, включена строгая проверка типа MIME?

Почему я получаю эту ошибку в консоли? Отказался от выполнения скрипта из 'https://www.googleapis.com/customsearch/v1?key=API_KEY&q=flower&searchType=image&fileType=jpg&imgSize=small&alt=json' потому что его тип MIME ('application / json') не является исполняемым, и включена строгая проверка типов MIME.
r

rob.m

5 лет назад

Ответов: 18

React router v ^ 4.0.0 Uncaught TypeError: невозможно прочитать свойство 'location' неопределенного

У меня возникли проблемы с реактивным маршрутизатором (я использую версию ^ 4.0.0).это мой index.jsimport React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import './index.css'; import { Router, Route, Link, browserHistory } from 'react-router'; ReactDOM.render( , document.getElementById('root') ); App.js - это что угодно. Я публикую здесь базовый, потому что проблема не в этом (я считаю) import React, { Component } from 'react'; import logo from './logo.svg'; import './App.css'; class App extends Component { render() { return ( Welcome to React To get started, edit src/App.js and save to reload. ); } } export default App; и вот что происходит, когда я проверяю журнал консолиRouter.js:43 Uncaught TypeError: Cannot read property 'location' of undefined at new Router (Router.js:43) at ReactCompositeComponent.js:295 at measureLifeCyclePerf (ReactCompositeComponent.js:75) at ReactCompositeComponentWrapper._constructComponentWithoutOwner (ReactCompositeComponent.js:294) at ReactCompositeComponentWrapper._constructComponent (ReactCompositeComponent.js:280) at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:188) at Object.mountComponent (ReactReconciler.js:46) at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371) at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258) at Object.mountComponent (ReactReconciler.js:46) ой, а это package.json на всякий случай{ "name": "teste2", "version": "0.1.0", "private": true, "dependencies": { "react": "^15.4.2", "react-dom": "^15.4.2", "react-router": "^4.0.0" }, "devDependencies": { "react-scripts": "0.9.5" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", "eject": "react-scripts eject" } } Я проверял это в других местах, но не нашел способа решить эту проблему.Спасибо большое за терпение и помощь !!
L

Lucas fersa

5 лет назад

Ответов: 7

Установка базового пути с помощью ConfigurationBuilder

Я пытаюсь установить базовый путь приложения для создаваемого мной веб-приложения .Net. Я все время получаю ошибки в построителе конфигураций. Это ошибка, которую я получаю.DNX, ошибка версии = v4.5.1 CS1061: ConfigurationBuilder не содержит определения для SetBasePath и не может быть найден метод расширения SetBasePath, принимающий первый аргумент типа ConfigurationBuilder (вы отсутствует директива using или ссылка на сборку?)Я предполагаю, что получу ту же ошибку для моих .AddJsonFile () и .AddEnvironmentVariables (). Я сделал что-то не так? Разве я не добавил правильную зависимость в свой project.json? Я приложил свои startup.cs и project.json.project.json{ "version": "1.0.0-*", "compilationOptions": { "emitEntryPoint": true }, "tooling": { "defaultNamespace": "TripPlanner" }, "dependencies": { "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", "Microsoft.Framework.Configuration": "1.0.0-beta8", "Microsoft.Framework.DependencyInjection": "1.0.0-beta8" //"Microsoft.Extensions.PlatformAbstractions": "1.0.0-beta8" }, "commands": { "web": "Microsoft.AspNet.Server.Kestrel" }, "frameworks": { "dnx451": { }, "dnxcore50": { } }, "exclude": [ "wwwroot", "node_modules" ], "publishExclude": [ "**.user", "**.vspscc" ] } startup.csusing System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.PlatformAbstractions; using Microsoft.Framework.Configuration; using Microsoft.Framework.DependencyInjection; using TripPlanner.Services; namespace TripPlanner { public class Startup { public static IConfigurationRoot Configuration; public Startup(IApplicationEnvironment appEnv){ var builder = new ConfigurationBuilder() .SetBasePath(appEnv.ApplicationBasePath) .AddJsonFile("config.json") .AddEnvironmentVariables(); Configuration = builder.Build(); } // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { services.AddMvc(); #if DEBUG services.AddScoped (); #else services.AddScoped (); #endif } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { //app.UseDefaultFiles(); app.UseStaticFiles(); app.UseMvc(config => { config.MapRoute( name: "Default", template: "{controller}/{action}/{id?}", defaults: new { controller = "App", action = "Index"} ); }); } // Entry point for the application. public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run(args); } } Ошибка находится в функции public startup прямо в верхней части startup.cs.
B

BartimaeusStern

6 лет назад

Ответов: 10

Как отформатировать строку JSON в виде таблицы с помощью jq?

Только что начал писать сценарии на Bash и наткнулся на jq для работы с JSON.Мне нужно преобразовать строку JSON, как показано ниже, в таблицу для вывода в терминал.[{ "name": "George", "id": 12, "email": "george@domain.com" }, { "name": "Jack", "id": 18, "email": "jack@domain.com" }, { "name": "Joe", "id": 19, "email": "joe@domain.com" }] Что я хочу отобразить в терминале:ID Name ================= 12 George 18 Jack 19 Joe Обратите внимание, что я не хочу отображать свойство электронной почты для каждой строки, поэтому команда jq должна включать некоторую фильтрацию. Следующее дает мне простой список имен и идентификаторов:list=$(echo "$data" | jq -r '.[] | .name, .id') printf "$list" Проблема в том, что я не могу отобразить это как таблицу. Я знаю, что у jq есть некоторые параметры форматирования, но они не так хороши, как параметры, которые у меня есть при использовании printf. Я думаю, что хочу получить эти значения в массиве, который затем могу перебрать сам, чтобы выполнить форматирование ...? То, что я пробовал, дает разные результаты, но никогда не дает того, чего я действительно хочу.Может ли кто-нибудь указать мне правильное направление?
R

Rein

5 лет назад

Ответов: 8

Как отображать на экране JSON-представление, а не [Object Object]

Я делаю приложение AngularJS 2 с бета-версией. Я хочу показать JSON-представление объекта на своей странице, но оно показывает [Object Object], а не {key1: value1 ....}Из компонента я могу использовать:get example() {return JSON.stringify(this.myObject)}; а затем в шаблоне:{{example}} но если у меня есть массив объектов и я хотел бы распечатать список этих объектов, как я могу это сделать?Использование: {{obj}} дает что-то вроде:- [Object Object] - [Object Object] - [Object Object] - [Object Object] и так далее. Есть ли способ отобразить их как JSON?
f

foralobo

6 лет назад

Ответов: 9

Отправка данных POST через необработанный JSON с помощью Postman

У меня есть Postman (тот, который не открывается в Chrome), и я пытаюсь выполнить POST-запрос, используя необработанный JSON.На вкладке Body у меня выбрано «raw» и «JSON (application / json)» с этим телом:{ "foo": "bar" } Для заголовка у меня 1, Content-Type: application / jsonНа стороне PHP я просто выполняю print_r ($ _ POST); пока что получаю пустой массив.Если я использую jQuery и делаю:$.ajax({ "type": "POST", "url": "/rest/index.php", "data": { "foo": "bar" } }).done(function (d) { console.log(d); }); Как и ожидалось, получаю:Array ( [foo] => bar ) Так почему он не работает с Postman?Скриншоты Postman:и заголовок:
D

Dallas

5 лет назад

Ответов: 6

Как проверить, является ли ответ выборки объектом json в javascript

Я использую fetch polyfill для получения JSON или текста из URL-адреса, я хочу знать, как я могу проверить, является ли ответ объектом JSON или это только текст fetch(URL, options).then(response => { // how to check if response has a body of type json? if (response.isJson()) return response.json(); });
S

Sibelius Seraphini

6 лет назад

Ответов: 3

Передача переменной bash в jq

Я написал сценарий для получения определенного значения из file.json. Это сработает, если я предоставлю значение jq select, но переменная, похоже, не работает (или я не знаю, как ее использовать).#!/bin/sh #this works *** projectID=$(cat file.json | jq -r '.resource[] | select(.username=="myemail@hotmail.com") | .id') echo "$projectID" EMAILID=myemail@hotmail.com #this does not work *** no value is printed projectID=$(cat file.json | jq -r '.resource[] | select(.username=="$EMAILID") | .id') echo "$projectID"
a

asidd

5 лет назад

Ответов: 9

Преобразование объекта JSON в буфер и буфера в объект JSON обратно

У меня есть объект JSON, и я конвертирую его в Buffer и выполняю здесь некоторые действия. Позже я хочу преобразовать те же данные буфера для преобразования в действительный объект JSON.Я работаю на Node V6.9.1Ниже приведен код, который я пробовал, но получаю [объект объекта], когда я конвертирую обратно в JSON и не могу открыть этот объект.var obj = { key:'value', key:'value', key:'value', key:'value', key:'value' } var buf = new Buffer.from(obj.toString()); console.log('Real Buffer ' + buf); //This prints --> Real Buffer var temp = buf.toString(); console.log('Buffer to String ' + buf); //This prints --> Buffer to String [object Object] Итак, я попытался распечатать весь объект, используя способ проверкиconsole.log('Full temp ' + require('util').inspect(buf, { depth: null })); //This prints --> '[object object]' [not printing the obj like declared above] Если я попытаюсь прочитать его как массив console.log(buf[0]); // This prints --> [ I tried parsing also it throw SyntaxError: Unexpected token o in JSON at position 2Мне нужно рассматривать его как реальный объект, подобный созданному мной (я имею в виду, как заявлено выше).Помогите пожалуйста ..
P

Prasanth J

5 лет назад

Ответов: 3

Используйте JsonReader.setLenient (true), чтобы принять искаженный JSON в строке 1, столбец 1, путь $

Что это за ошибка? Как я могу это исправить? Мое приложение работает, но не может загружать данные. И это моя ошибка: используйте JsonReader.setLenient (true), чтобы принять искаженный JSON в строке 1, столбец 1, путь $Это мой фрагмент:public class news extends Fragment { private RecyclerView recyclerView; private ArrayList data; private DataAdapter adapter; private View myFragmentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { myFragmentView = inflater.inflate(R.layout.news, container, false); initViews(); return myFragmentView; } private void initViews() { recyclerView = (RecyclerView) myFragmentView.findViewById(R.id.card_recycler_view); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity().getApplicationContext()); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(layoutManager); data = new ArrayList(); adapter = new DataAdapter(getActivity(), data); recyclerView.setAdapter(adapter); new Thread() { public void run() { getActivity().runOnUiThread(new Runnable() { @Override public void run() { loadJSON(); } }); } } .start(); } private void loadJSON() { if (isNetworkConnected()){ HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .retryOnConnectionFailure(true) .connectTimeout(15, TimeUnit.SECONDS) .build(); Gson gson = new GsonBuilder() .setLenient() .create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://www.memaraneha.ir/") .client(client) .addConverterFactory(GsonConverterFactory.create(gson)) .build(); RequestInterface request = retrofit.create(RequestInterface.class); Call call = request.getJSON(); final ProgressDialog progressDialog = new ProgressDialog(getActivity()); progressDialog.show(); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { progressDialog.dismiss(); JSONResponse jsonResponse = response.body(); data.addAll(Arrays.asList(jsonResponse.getAndroid())); adapter.notifyDataSetChanged(); } @Override public void onFailure(Call call, Throwable t) { progressDialog.dismiss(); Log.d("Error", t.getMessage()); } }); } else { Toast.makeText(getActivity().getApplicationContext(), "Internet is disconnected", Toast.LENGTH_LONG).show();} } private boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); if (ni == null) { // There are no active networks. return false; } else return true; } } RequestInterface:public interface RequestInterface { @GET("Erfan/news.php") Call getJSON(); } ОБНОВЛЕНИЕ (прочтите текст ниже и найдите свою проблему) всегда эта ошибка не связана с вашим json, это может быть из-за вашего неправильный запрос, для лучшей обработки сначала проверьте свой запрос в почтальоне если вы получили ответ, сравните свой ответ json с вашей моделью если все в порядке, то эта ошибка возникла из-за вашего неправильного запроса, также это могло произойти, если ваш ответ не josn (в некоторых случаях ответ может быть html)
E

Erfan

5 лет назад

Ответов: 11

Запись объекта JSON в файл JSON с помощью fs.writeFileSync

Я пытаюсь записать объект JSON в файл JSON. Код выполняется без ошибок, но вместо того, чтобы записать содержимое объекта, все, что записывается в файл JSON, это:[object Object] Это код, который на самом деле пишет:fs.writeFileSync('../data/phraseFreqs.json', output) 'output' - это объект JSON, а файл уже существует. Пожалуйста, дайте мне знать, если потребуется дополнительная информация.
R

Romulus3799

5 лет назад

Ответов: 6

Массивы декодирования Swift JSONDecode не работают, если декодирование одного элемента не удается

При использовании протоколов Swift4 и Codable у меня возникла следующая проблема - похоже, нет способа разрешить JSONDecoder пропускать элементы в массиве. Например, у меня такой JSON:[ { "name": "Banana", "points": 200, "description": "A banana grown in Ecuador." }, { "name": "Orange" } ] И Codable struct:struct GroceryProduct: Codable { var name: String var points: Int var description: String? } При декодировании этого jsonlet decoder = JSONDecoder() let products = try decoder.decode([GroceryProduct].self, from: json) Результат товаров пуст. Этого и следовало ожидать, поскольку второй объект в JSON не имеет ключа "points", а points не является необязательным в структуре GroceryProduct.Вопрос в том, как я могу разрешить JSONDecoder «пропускать» недопустимый объект?
K

Khriapin Dmitriy

4 года назад

Ответов: 16

Как исключить свойства из Swift Codable?

Swift Encodable/Decodable протоколы, выпущенные с Swift 4, делают (де) сериализацию JSON довольно приятной. Однако я еще не нашел способа детально контролировать, какие свойства следует кодировать, а какие декодировать.Я заметил, что исключение свойства из сопутствующего перечисления CodingKeys полностью исключает свойство из процесса, но есть ли способ получить более детальный контроль?
R

RamwiseMatt

5 лет назад

Ответов: 6

express.json против bodyParser.json

Я пишу относительно новое приложение, и мне было интересно, что мне использовать:express.json() или bodyParser.json() Могу я предположить, что они делают то же самое.Я хотел бы просто использовать express.json (), поскольку он уже встроен.
u

user7742676

4 года назад

Ответов: 5

How to parse JSON in Kotlin?

I'm receiving a quite deep JSON object string from a service which I must parse to a JSON object and then map it to classes.How can I transform a JSON string to object in Kotlin?After that the mapping to the respective classes, I was using StdDeserializer from Jackson. The problem arises at the moment the object had properties that also had to be deserialized into classes. I was not able to get the object mapper, at least I didn't know how, inside another deserializer.Preferably, natively, I'm trying to reduce the number of dependencies I need so if the answer is only for JSON manipulation and parsing it'd be enough.
A

AJ_1310

5 лет назад

Ответов: 15

2022 WebDevInsider