GVKun编程网logo

是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能(react点击按钮跳转指定位置)

10

在本文中,我们将详细介绍如何接受任意的JSON对象?的各个方面,并为您提供关于如何接收json的相关解答,同时,我们也将为您带来关于Android–RetrofitGson-如何在JSON响应中将JS

在本文中,我们将详细介绍如何接受任意的 JSON 对象?的各个方面,并为您提供关于如何接收json的相关解答,同时,我们也将为您带来关于Android – Retrofit Gson-如何在JSON响应中将JSON字符串解析为JSON键的对象?、android-如何使用json库解析嵌套的JSON对象?、c – 我可以轻松地创建一个模板函数,它接受任意类型的任意容器并对其进行操作吗?、C++中可以接受任意多个参数的函数定义方法(详解)的有用知识。

本文目录一览:

如何接受任意的 JSON 对象?(如何接收json)

如何接受任意的 JSON 对象?(如何接收json)

我想出了一种方法,但我觉得我可能是在重新发明轮子。我定义了一个自定义反序列化器来读取任意 JSON 然后再次序列化它:

public class JsonAsStringDeserializer extends JsonDeserializer<String> {
    private final ObjectMapper mapper = new ObjectMapper();
  @Override
  public String deserialize(JsonParser p,DeserializationContext ctx)
          throws IOException {
     TreeNode node = mapper.readTree(p);
     return mapper.writeValueAsString(node);
      
  }
}

在模型 POJO 中:

@JsonDeserialize(using = JsonAsStringDeserializer.class) 
private String c = null;

Android – Retrofit Gson-如何在JSON响应中将JSON字符串解析为JSON键的对象?

Android – Retrofit Gson-如何在JSON响应中将JSON字符串解析为JSON键的对象?

这是我的 JSON响应:

{
      "id": 2,"name": "Test","content": "{\"type\": \"status\",\"text\": \"Lorem ipsum dummy text.\",\"id\": 1}"
}

这些是模型结构:

class TestModel {
    public int id;
    public String name;
    public Content content;
}

class Content {
    public int id;
    public String status;
    public String text;
}

我想使用Retrofit和GsonConvertor将内容的值直接解析到我的Content模型对象中.但是目前,我将其解析为String值,而不是使用Gson.fromJson()转换为我的Content模型对象.是否有任何解决方案可以获得我的预期结果?

当我以前使用GsonConverterFactory解析它时,Retrofit在onFailure方法中给出了回调,但有以下异常:

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 4 column 19 path $.data[0].content

解决方法

问题在于JSON响应,它不在 correct JSON format中.“content”字段应该是一个对象,而不是一个字符串:

{
    "id": 2,"content": {
        "type": "status","text": "Lorem ipsum dummy text.","id": 1
    }
}

这将允许gson.fromJson(response,TestModel.class)或带有GsonConverterFactory的RetroFit将您的响应正确解析为相应的对象.

当然,这仅适用于您能够更改正在接收的JSON响应的情况.如果没有,首先要确保控制响应的人知道他们做错了.如果没有任何变化,那么您应该能够通过将TestModel中的内容更改为String来解决此问题:

class TestModel {
    public int id;
    public String name;
    public String content;
}

class Content {
    public int id;
    public String type;
    public String text;
}

然后分别解析每个对象:

TestModel testModel = gson.fromJson(response,TestModel.class);
Content content = gson.fromJson(testModel.content,Content.class);

如果无法更改响应,则另一个选项是为Content对象创建TypeAdapter

public class ContentAdapter extends TypeAdapter<Content> {

    @Override
    public void write(JsonWriter out,Content value) throws IOException {
        // Todo: Writer implementation
    }

    @Override
    public Content read(JsonReader in) throws IOException {
        if(in.peek() != JsonToken.NULL) {
            return fromJson(in.nextString());
        } else {
            in.nextNull();
            return null;
        }
    }

}

然后将TypeAdapter添加到您的GSON实现:

Gson gson = new GsonBuilder()
        .registerTypeAdapter(Content.class,new ContentAdapter()).create();

android-如何使用json库解析嵌套的JSON对象?

android-如何使用json库解析嵌套的JSON对象?

我想使用json库解析json对象.

    {
    "batters":
        {
            "batter":
                [
                    { "id": "1001", "type": "Regular" },
                    { "id": "1002", "type": "Chocolate" },
                    { "id": "1003", "type": "BlueBerry" },
                    { "id": "1004", "type": "Devil's Food" }
                ]
        }

    }

解决方法:

使用JSON ..

JSONObject object = new JSONObject(yourString);
JSONObject batters = object.getJSONObject("batters");
JSONArray batter = batters.getJSONArray("batter");
for(int i = 0 ; i < batter.length() ; i++) { 
JSONObject object1 = (JSONObject) batter.get(i);
    String id = object1.getString("id");
}

c – 我可以轻松地创建一个模板函数,它接受任意类型的任意容器并对其进行操作吗?

c – 我可以轻松地创建一个模板函数,它接受任意类型的任意容器并对其进行操作吗?

我正试图让这样的东西起作用:

// This method is wrong,won't work,need your help
template < template <typename T> class U >
void foo(U& u) 
{
  T& blah = *u.begin();
}

int main(int,char**)
{
  vector<int> myVec(4,10);
  foo<vector<int> >(myVec); // This is how I want to call it,even better if I can leave the parameters out and just do foo(myVec);
  return EXIT_SUCCESS;
}

真的我想要做的是避免以下因为它似乎多余:

template <typename T,typename U>
void foo(U& u)
{
T& blah = *u.begin(); 
}

int main(int,10);
  foo<int,std::vector<int> >(myVec); // first int in parameters is redundant cause I already provide int as arg to vector
  return EXIT_SUCCESS;
}

解决方法

你可以做 :

template < typename U>
void foo(U& u) 
{
  typename U::value_type blah = *u.begin();
}

C++中可以接受任意多个参数的函数定义方法(详解)

C++中可以接受任意多个参数的函数定义方法(详解)

能够接受任意多个参数的函数,可以利用重载来实现。这种函数的执行过程类似于递归调用,所以必须要有递归终止条件。

#include <iostream>
#include <bitset>

void print() {} // 递归终止条件。这是必需的。

template<typename Type,typename... Types>
void print(const Type& arg,const Types&... args)
{
  std::cout << arg << std::endl;
  print(args...);
}

int main()
{
  print(1,3.1415,"Hello,world!",1.618,true,std::bitset<16>(377),40);
  return 0;
}

执行后的结果如下:

1 
3.1415 
Hello,world! 
1.618 
1 
0000000101111001 
40 

以上就是小编为大家带来的C++中可以接受任意多个参数的函数定义方法(详解)全部内容了,希望大家多多支持编程小技巧~

今天关于如何接受任意的 JSON 对象?如何接收json的分享就到这里,希望大家有所收获,若想了解更多关于Android – Retrofit Gson-如何在JSON响应中将JSON字符串解析为JSON键的对象?、android-如何使用json库解析嵌套的JSON对象?、c – 我可以轻松地创建一个模板函数,它接受任意类型的任意容器并对其进行操作吗?、C++中可以接受任意多个参数的函数定义方法(详解)等相关知识,可以在本站进行查询。

在本文中,我们将带你了解JS - 点击按钮时将项目动态插入数组在这篇文章中,我们将为您详细介绍JS - 点击按钮时将项目动态插入数组的方方面面,并解答js点击添加按钮添加内容常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Angular 2 – 在父组件上单击按钮时将数据从父组件传递到子组件、angularjs – ng-click事件在点击按钮时没有触发?、c# – 如何在asp.net中单击按钮时动态添加控件?、c# – 如何在点击按钮时检查gridview列中复选框的状态

本文目录一览:

JS - 点击按钮时将项目动态插入数组(js点击添加按钮添加内容)

JS - 点击按钮时将项目动态插入数组(js点击添加按钮添加内容)

如何解决JS - 点击按钮时将项目动态插入数组?

所以在创建项目时我遇到了一个问题。我有一个容器,我们称之为具有指定索引的容器,所以它看起来像 container0 等。在那个容器中,我有按钮来复制(和删除)这个特定段及其所有数据。我还有索引数组以确保所有 id 都是唯一的。我有一个工作项目,但我想解决这种特殊情况,当我有多个容器,并且在页面源容器中有 [0,1,5,8,6,7,9,12,10,11] 之类的索引时。我现在正在做的是每当有人点击容器 [7] 里面的按钮并且用户想要复制该容器 3 次时,我将拥有 [0,13,14,15,11],而我解决这个问题的方法是在按钮处理程序中我获取 const index = parseInt(e.target.id.match(/\d+/)[0]); 等容器的 id,然后使用 querySelector 我选择要从中获取数据的容器。我想让你帮我弄清楚,我怎样才能在哪个按钮中获得容器 ID 以不同的、更简单的方式点击,而不是从按钮匹配 ID(复制和删除按钮也有 ID,它等于容器 ID) .还有一件事,我使用 eventDelegetion 为新创建的段添加 eventListeners

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Angular 2 – 在父组件上单击按钮时将数据从父组件传递到子组件

Angular 2 – 在父组件上单击按钮时将数据从父组件传递到子组件

在parentComponenet.html

</div><button(click)="discoverClicked()">discover</button></div>
<child-component></child-component>

在parentComponent.ts

export class parentComponent implements OnInit {
    discoverClicked(){
       //send data to childComponent
    }
}

在childComponent.ts

export class childComponent implements OnInit {
    discoverClicked(){
       //received data from parent component
    }
}

有没有办法如上所述?

解决方法

取决于您的数据,一种方法是引入一些变量,例如在父组件中:

@Component(...)
export class ParentComponent {
    private data: any;

    discoverClicked(){
        // do the thing
        this.data = "some data not matter how you got it";
    }
}

在parent-component.html中:

</div><button(click)="discoverClicked()">discover</button></div>
<child-component [data]=data></child-component>

然后在子组件中:

@Component(...)
export class ChildComponent {

    @Input('data')
    set data(data: any) {
        //do whatever you want with your data here,this data will be passed from parent component
    }
}

如果您需要更复杂的行为,您可以创建一些服务,它将为您保存数据,然后将其传递给子组件,例如:

@Injectable()
export class DataService {
    private _data: BehaviorSubject<any> = new BehaviorSubject<any>(null);

    public setData(data: any){
        this._data.next(data);
    }

    public getData(): Observable<any> {
        return this._data.asObservable();
    }
}

然后在父组件中:

@Component(...)
export class ParentComponent {

    constructor(private dataService: DataService){}

    discoverClicked(){
        // do the thing
        this.dataService.setData("any data that you want");
    }
}

在子组件中:

@Component(...)
export class ChilComponent{

    constructor(private dataService: DataService){
        this.dataService.getData().subscribe(data=>{
            // Do whatever you want with your data
        }
    }

}

附:不要忘记在某处提供服务并取消订阅子组件中的数据.

angularjs – ng-click事件在点击按钮时没有触发?

angularjs – ng-click事件在点击按钮时没有触发?

我在 Angularjs中创建Web应用程序,我在单独的.js文件中编写代码,用于从数据库登录
是在页面加载时执行但在按钮点击时不触发,
我的.js代码是:
var adminModule = angular.module('angApp',[]);
   //Defining a Angular Controller
   adminModule.controller('AdminCtrl',['$scope','$http',`enter code here` function ($scope,$http) {
    Login();
           function Login(U_Name,U_PWD) {
        debugger;
        //Defining the $http service for login the admin user
        $http({
            method: 'POST',url: '/Admin/IsAuthenticate',data: { User_Name: U_Name,User_PWD: U_PWD }
        }).success(function (result) {

            if (result == true) {
                alert('user is valid');
            }
            else {
                alert('unauthorised access!');
            }
        })
            .error(function (error) {
                //Showing error message 
                $scope.status = 'Unable to connect' + error.message;
            });
    }
       }]);

我在这里使用Angularjs用于绑定它的视图是一个问题,上面的代码正在处理页面加载但是不能按下按钮,我使用的代码是:

<divng-controller="AdminCtrl" ng-app="angApp">
     <h2>using angularjs</h2>
    <input type="text" id="txtUserAng" placeholder="User Name" ng-model="U_Name" />
    <input type="password" id="txtPWDAng" placeholder="Password" ng-model="U_PWD"  />
    <input type="button" id="login" value="login" ng-click="Login()" />
</div>

有人请帮助我,我想念这里,所以我无法点击按钮触发ng-click事件
提前致谢.

您的登录功能需要在范围内.现在,它本质上是一个私人功能:
$scope.Login = function () {
  ...
}

c# – 如何在asp.net中单击按钮时动态添加控件?

c# – 如何在asp.net中单击按钮时动态添加控件?

我正在尝试动态添加控件

码:

AddVisaControl.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AddVisaControl.ascx.cs" EnableViewState="false" Inherits="Pyramid.AddVisaControl" %>
<%@ Register assembly="BasicFrame.WebControls.BasicDatePicker" namespace="BasicFrame.WebControls" tagprefix="BDP" %>
<div id="divreg" runat="server">
<table id="tbl" runat="server">
<tr>
  <td> Visa Number:</td>
  <td><asp:TextBox ID="txtUser" Width="160px" runat="server"/></td>
  <td> Country Name:</td>
  <td>
<asp:DropDownList ID="dropCountry" Width="165px" runat="server">
</asp:DropDownList></td>
</tr>
 <tr>
 <td> Type of Visa:</td>
 <td>
<asp:DropDownList ID="dropVisa" Width="165px" runat="server"> </asp:DropDownList></td>
<td> Type of Entry:</td>
<td>
<asp:DropDownList ID="dropEntry" Width="165px" runat="server"> </asp:DropDownList></td>
</tr>
<tr>
<td>&nbsp; Expiry Date</td>
<td>
</td>
</tr>
</table>

.cs代码:

下面的代码是第一次点击添加按钮时它正在添加控件但是如果我关闭浏览器窗口并再次出现并单击添加按钮我得到更多控件的问题

static int i = 0;
    protected void addnewtext_Click(object sender,EventArgs e)
    {
        i++;
        for (int j = 0; j <= i; j++)
        {
            AddVisaControl ac = (AddVisaControl)Page.LoadControl("AddVisaControl.ascx");
            PlaceHolder1.Controls.Add(ac);
            PlaceHolder1.Controls.Add(new LiteralControl("<BR>"));
        }
    }

在下面的图像如果我点击添加更多签证按钮我想获得另一个签证详细信息

有任何想法吗?提前致谢

解决方法

我将展示一个你可以按照自己的方式尝试的例子

一个想法是创建一个按钮列表,您可以在其中存储您创建的按钮inbtnCreateDynamic_click

你可以有一个像这样的方法:

private Button CreateButton(string id,string name)
        {
            Button b = new Button();
            b.Text = name;
            b.ID = id;
            b.Click += new EventHandler(Button_Click);
            b.OnClientClick = "ButtonClick('" + b.ClientID + "')";
            return b;
        }

在btnCreateDynamic_click中你可以有类似的东西:

Button b = CreateButton("dinamicBtn"+myDinamicButtonsList.Count.ToString(),"dinamicBtn"+myDinamicButtonsList.Count.ToString());
myDinamicButtonsList.add(b);
and in the pageLoad for example you Could do something like

foreach(button btn in myDinamicButtonsList){
    form1.Controls.Add(btn));
}

List<Button> myDinamicButtonsList = new List<Button>();

myDinamicButtonsList应存储在每个请求后可以检索到的位置.

编辑:在页面加载中你可以有这样的东西:

if(Session["myDinamicButtons"] == null){
    List<Button> myDinamicButtonsList = new List<Button>();
    Session["myDinamicButtons"] = myDinamicButtonsList;
}

foreach(Button btn in Session["myDinamicButtons"] as List<Button>){
    form1.Controls.Add(btn));
}

我没有测试它,但它应该工作.

也可以提供以下一些信息可能更有帮助..

您在客户端的按钮单击事件将导致页面回发,这将启动ASP.Net页面生命周期.

您在服务器上的按钮单击事件是PostBackEvent,您应该能够使用在Load或Init事件中使用的相同方法调用CreateMyButton().

c# – 如何在点击按钮时检查gridview列中复选框的状态

c# – 如何在点击按钮时检查gridview列中复选框的状态

我在gridview中使用了checkBox列.我想检查该复选框的状态.单击按钮时,应检查是否选中了任何复选框.如果未选中任何复选框,则它应显示先检查复选框的警告消息.

解决方法

嘿,我找到了答案.它如下:

function checkBoxselectedornot()
{

       var frm=document.forms['aspnetForm'];
       var flag=false;
       for(var i=0;i<document.forms[0].length;i++)
       {
           if(document.forms[0].elements[i].id.indexOf('chkDownloadSelectedEvent')!=-1)
           {
                 if(document.forms[0].elements[i].checked)
                 {
                      flag=true
                 }  
           }
       } 
      if (flag==true)
      {
        return true
      }else
      {
        alert('Please select at least one Event.')
        return false
      }

}

我们今天的关于JS - 点击按钮时将项目动态插入数组js点击添加按钮添加内容的分享就到这里,谢谢您的阅读,如果想了解更多关于Angular 2 – 在父组件上单击按钮时将数据从父组件传递到子组件、angularjs – ng-click事件在点击按钮时没有触发?、c# – 如何在asp.net中单击按钮时动态添加控件?、c# – 如何在点击按钮时检查gridview列中复选框的状态的相关信息,可以在本站进行搜索。

在这里,我们将给大家分享关于使用 curl 获取 json 数据的知识,让您更了解curl解析json数据的本质,同时也会涉及到如何更有效地curl hhtp 使用 api 密钥发布对 json 数据类型的请求、cURL JSON 数据 Node.js、curl 作者 Daniel Stenberg 计划:将为 curl 添加原生支持 JSON、cURL作者透露:cURL将原生支持JSON!的内容。

本文目录一览:

使用 curl 获取 json 数据(curl解析json数据)

使用 curl 获取 json 数据(curl解析json数据)

您应该能够使用以下命令获得所需的输出:

curl -H "Accept: application/json" https://internal.mycompany.com/api/install/get_macs.php?token=xxxxxxxxxxxxxxx > mac.txt

Curl 默认为 GET HTTP 方法,并且 -i 选项用于在响应中包含标头,否则您将只有正文作为输出。

curl hhtp 使用 api 密钥发布对 json 数据类型的请求

curl hhtp 使用 api 密钥发布对 json 数据类型的请求

如何解决curl hhtp 使用 api 密钥发布对 json 数据类型的请求?

我发现了许多帖子,但无法获得使用 api Key 在 url 上发布 json 数据的完整命令。所有示例都有用户和登录名或无授权链接

curl -X POST -H "Content-Type: application/json" \
    -d {JSON Data} \
    https://postURL

我可以在哪里安装 Api 密钥?

我的 json 看起来像这样:

{
  "AlgorithmNum": 544,"values": [
    {
      "size": "231","language": "c","result": {
        "executiontime": 341.1,"runtimememory": 554,"cells": 12,"platform" " "android"
      }
    }
  ]
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

cURL JSON 数据 Node.js

cURL JSON 数据 Node.js

如何解决cURL JSON 数据 Node.js?

此代码有问题:


const express = require(''express'');

const app = express();

app.use(express.urlencoded({ extended: true }));
app.use(express.json());


app.get(''/'',(req,res) => {
res.send([
    { id: 1,title: ''foo'' }
]);
});

app.post(''/'',res) => {
res.send({
        data: req.body
    })
    console.log("Geht");
});

app.listen(3000,() => {
console.log(''Server listening on port 3000.'');
});

如果我尝试使用 "curl -X POST -d ''{"user":"jane.doe"}'' -H "Content-Type: application/json" http://localhost:3000/" 例如,我总是收到以下错误:

语法错误:JSON 中的意外标记 u 位于位置 1 在 JSON.parse() 在解析 (C:\Programmieren\node test\node_modules\body-parser\lib\types\json.js:89:19) 在 C:\Programmieren\node test\node_modules\body-parser\lib\read.js:121:18 在 invokeCallback (C:\Programmieren\node test\node_modules\raw-body\index.js:224:16) 完成 (C:\Programmieren\node test\node_modules\raw-body\index.js:213:7) 在 IncomingMessage.onEnd (C:\Programmieren\node test\node_modules\raw-body\index.js:273:7) 在 IncomingMessage.emit (events.js:327:22) 在 endReadableNT (internal/streams/readable.js:1327:12) 在 processticksAndRejections (internal/process/task_queues.js:80:21)

有人能告诉我解决方法吗?

解决方法

对于 Windows 用户,它可以转义 " 字符。

curl -X POST -d "{\"user\":\"jane.doe\"}" -H "Content-Type: application/json" http://localhost:3000/

curl 作者 Daniel Stenberg 计划:将为 curl 添加原生支持 JSON

curl 作者 Daniel Stenberg 计划:将为 curl 添加原生支持 JSON

近日,curl 作者 Daniel Stenberg 计划将为 curl 添加原生支持 JSON ,
并给出了三个理由。

  • 在 REST APIs 等领域,发送 JSON 是很普遍的做法
  • 当被问及人们选择 curl 替代方案的考虑因素时,“易于使用 JSON”是常见的答案
  • 在 Stack Overflow 等网站上,因为 JSON 使用了双引号,而 Shell 不会在单引号内扩展变量从而导致许多人无法使用 curl 发送正确的 JSON 和正确引用 JSON

Daniel 表示,由于他不经常发送 JSON,所以不适合完全靠他来设计这个功能。他需要更多其他人的帮助来让这个功能尽可能地有用。

简单来说,Daniel 计划增加两个命令行选项:

  • 发送已格式化的 JSON 作为 -d 的快捷方式,并附带相匹配的 Accept header
  • 构建 JSON request body 进行发送

目前 Daniel 已经在curl wiki中起草了他更新的概念,同时创建了讨论区。感兴趣的朋友们可以积极参与讨论。

curl wiki 链接:https://github.com/curl/curl/...

讨论区链接:https://github.com/curl/curl/...

关于 cURL

cURL是一个开源项目,主要的产品是curl(命令行工具)和libcurl(C语言的API库),两者功能均是:基于网络协议,对指定URL进行网络传输。

curl 是一款利用 URL 语法在命令行下工作的文件传输工具,1997 年首次发行。它支持文件上传和下载,所以是一款综合传输工具。curl 包含用于程序开发的 libcurl,可处理各种情况的认证页面,如交互式的让用户输入密码等,目前可在MIT许可证下使用。

cURL作者透露:cURL将原生支持JSON!

cURL作者透露:cURL将原生支持JSON!

curl 作者 daniel stenberg 在邮件透露了为 curl 添加原生支持 json 的计划。

654ee848be60e978d6b382090a5969d.png

Daniel 解释了为 cURL 添加原生支持 JSON 的理由:

  • 在 REST APIs 等领域,发送 JSON 是十分普遍的做法

  • 许多人被问及选择 cURL 替代方案的考虑因素时,“易于使用 JSON”是常见的一项

  • 在 Stack Overflow 等网站上,相当多的人无法使用 cURL 发送正确的 JSON 和正确引用 JSON,因为 JSON 使用了双引号,而 Shell 不会在单引号内扩展变量

Daniel 还表示,由于自己不经常发送 JSON,所以完全靠他来设计这个功能并不合适。他需要其他人的帮助,让这个功能尽可能地有用。

目前 Daniel 已在 wiki 中提供了关于此功能的草案,同时创建了讨论区。

简单来说,Daniel 计划增加两个命令行选项:

  • 发送已格式化的 JSON 作为 -d 的快捷方式,并附带相匹配的 Accept header

  • 通过构建 JSON request body 进行发送

--json -||@filename
curl --json [whatever] http: //example.com
登录后复制

上述命令行是一种快捷方式,其作用等同于-d [whatever] -H "Content-Type: application/json"。

--jp [part]
登录后复制

(''jp'' 是 "JSON part" 的缩写)

构建 JSON request body,然后使用 request headerContent-Type: application/json发送 JSON。

[part] 是构建 JSON 内容的指令。

(Syntax inspired by jo )

详情查看: https://github.com/curl/curl/wiki/JSON

关于使用 curl 获取 json 数据curl解析json数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于curl hhtp 使用 api 密钥发布对 json 数据类型的请求、cURL JSON 数据 Node.js、curl 作者 Daniel Stenberg 计划:将为 curl 添加原生支持 JSON、cURL作者透露:cURL将原生支持JSON!等相关内容,可以在本站寻找。

本文将介绍根据使用 OpenAPI 和 JSON-Schema 的查询参数创建所需的属性的详细情况,特别是关于根据code获取openid的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于.net – 在F#Web Api项目中使用可选的查询参数、c# – 如何使用Json.Net将JsonProperty属性分配给DLL内的类的属性?、Caused by:org.hibernate.too.schema.spi.SchemaManagementException:Attempt to resolve foreign key m...、com.fasterxml.jackson.databind.jsonschema.JsonSchema的实例源码的知识。

本文目录一览:

根据使用 OpenAPI 和 JSON-Schema 的查询参数创建所需的属性(根据code获取openid)

根据使用 OpenAPI 和 JSON-Schema 的查询参数创建所需的属性(根据code获取openid)

您无法使用上下文外数据在 JSON Schema 中执行任何操作。因此,做您想做的唯一方法是将查询数据放入您的响应中。

{
  "id": 123,"query": {},...
}
{
  "id": 123,"with": ["stuff"],...
  "stuff": { ... }
}

使用纯 JSON Schema 或 OpenAPI 3.1,您可以使用 if/thencontains 来表达条件要求。

{
  "type": "object","properties": {
    "id": { "type": "object" },"with": { "type": "array","items": { "type": "string" } },...
    "stuff": { ... }
  },"required": ["id"],"allOf": [
    {
      "if": {
        "properties": {
          "with": { "contains": { "const": "stuff" } }
        },"required": ["with"]
      },"then": { "required": ["stuff"] }
    },... additional conditionals ...
  ]
}

但是,假设您使用的是 OpenAPI 3.0,则您没有 ifthencontains。这仍然是可能的,但它变得有点难看,因为您需要使用一堆令人困惑的布尔逻辑概念。

{
  "type": "object","allOf": [
    {
      "anyOf": [
        {
          "not": {
            "properties": {
              "with": {
                "not": {
                  "items": { "not": { "enum": ["stuff"] } }
                 }
              }
            },"required": ["with"]
          }
        },{ "required": ["stuff"] }
      ]
    },... additional conditionals ...
  ]
}

.net – 在F#Web Api项目中使用可选的查询参数

.net – 在F#Web Api项目中使用可选的查询参数

我正在使用F#ASP.NET模板将C#webapi项目转换为F#.除了可选的查询参数,一切都很好.我不断得到这个错误
{
    "message": "The request is invalid.","messageDetail": "The parameters dictionary contains an invalid entry for parameter 'start' for method 'System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage] GetvendorFiles(Int32,System.Nullable`1[System.DateTime])' in 'Thor.WebApi.vendorFilesController'. The dictionary contains a value of type 'System.Reflection.Missing',but the parameter requires a value of type 'System.Nullable`1[System.DateTime]'."
}

F#函数签名:

[<HttpGet; Route("")>]
member x.GetvendorFiles( [<Optional; DefaultParameterValue(100)>] count,[<Optional; DefaultParameterValue(null)>] start : Nullable<DateTime> ) =

C#函数签名:

[HttpGet]
[Route("")]
public async Task<HttpResponseMessage> GetvendorFiles(int count = 100,DateTime? start = null)

有没有人知道任何解决方法?

更新:
我弄清了这个问题的原因. ASP.NET提取控制器操作using ParameterInfo的默认值.显然,F#编译器不会像C#一样编译默认值(即使使用DefaultParameterValueAttribute)

什么是最好的方式或解决这个问题?是否需要注入或实现自己的ParameterBinding的一些过滤器?

解决方法

您可以使用自定义ActionFilterattribute实现解决此问题.以下代码支持在缺少操作参数时使用DefaultParameterValue值,以及当action参数具有System.Reflection.Missing类型的值时.

代码也在Gist ActionFilter for ASP.NET Web API DefaultParameterValue support in F#中.

namespace System.Web.Http

open System.Reflection
open System.Web.Http.Filters
open System.Web.Http.Controllers
open System.Runtime.InteropServices

/// Responsible for populating missing action arguments from DefaultParameterValueAttribute values.
/// Created to handle this issue https://github.com/aspnet/Mvc/issues/1923
/// Note: This is for later version of System.Web.Http but Could be back-ported.
type DefaultParameterValueFixupFilter() =
  inherit ActionFilterattribute()
  /// Get list of (paramInfo,defValue) tuples for params where DefaultParameterValueAttribute is present.
  let getDefParamVals (parameters:ParameterInfo array) =
    [ for param in parameters do
        let defParamValAttrs = param.GetCustomAttributes<DefaultParameterValueAttribute>() |> List.ofSeq 
        match defParamValAttrs with
        // Review: we are ignoring null defaults.  Is this correct?
        | [x] -> if x.Value = null then () else yield param,x.Value
        | [] -> () 
        | _ -> failwith "Multiple DefaultParameterValueAttribute on param '%s'!" param.Name
    ]
  /// Add action arg default values where specified in DefaultParameterValueAttribute attrs.
  let addActionArgDefsFromDefParamValAttrs (context:HttpActionContext) =  
    match context.ActionDescriptor with
    | :? ReflectedHttpActionDescriptor as ad ->
      let defParamVals = getDefParamVals (ad.MethodInfo.GetParameters())
      for (param,value) in defParamVals do
        match context.ActionArguments.TryGetValue(param.Name) with
        | true,:? System.Reflection.Missing
        | false,_ ->
          // Remove is null-op if key not found,so we handle both match cases OK.
          let _ = context.ActionArguments.Remove(param.Name)
          context.ActionArguments.Add(param.Name,value)
        | _,_ -> ()
    | _ -> ()
  /// Override adding suport for DefaultParameterValueAttribute values.
  override x.OnActionExecuting(context) =
    addActionArgDefsFromDefParamValAttrs context
    base.OnActionExecuting(context)
  /// Override adding suport for DefaultParameterValueAttribute values.
  override x.OnActionExecutingAsync(context,cancellationToken) =
    addActionArgDefsFromDefParamValAttrs context
    base.OnActionExecutingAsync(context,cancellationToken)

c# – 如何使用Json.Net将JsonProperty属性分配给DLL内的类的属性?

c# – 如何使用Json.Net将JsonProperty属性分配给DLL内的类的属性?

我在DLL中有一个类,它没有标记DataContract,JsonProperty等.现在我想将类的实例序列化为 JSON对象,并缩短C#属性名称.

例如,该课程是:

public class Foo
{
    public string SomeLengthyCSharpPropertyName { get; set; }
}

I wonder if I Could create a mapping between the C# names and the json names. I cannot directly add the DataContract,JsonProperty attributes like below. Is there any workaround?

[DataContract]
public class Foo
{
    [JsonProperty("s")]
    public string SomeLengthyCSharpPropertyName { get; set; }
}

我倾向于不创建另一个具有相同但JsonProperty装饰属性的类,并将属性复制到新类,然后序列化.

解决方法

您可以使用成员的覆盖属性字典创建自己的自定义 ContractResolver,然后覆盖 CreateProperty()并将覆盖应用于基类返回的 JsonProperty

public class JsonPropertyOverride
{
    public string PropertyName { get; set; }

    public bool? Ignored { get; set; }

    // Others as required from http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonPropertyAttribute.htm
    // Changing all value type properties to nullables.
}

public class OverrideContractResolver : DefaultContractResolver
{
    readonly Dictionary<MemberInfo,JsonPropertyOverride> overrides; // A private copy for thread safety.

    public OverrideContractResolver(IDictionary<MemberInfo,JsonPropertyOverride> overrides)
        : base()
    {
        if (overrides == null)
            throw new ArgumentNullException();
        this.overrides = overrides.ToDictionary(p => p.Key,p => p.Value);
    }

    protected override JsonProperty CreateProperty(MemberInfo member,MemberSerialization memberSerialization)
    {
        var property = base.CreateProperty(member,memberSerialization);
        if (property != null)
        {
            JsonPropertyOverride attr;
            if (overrides.TryGetValue(member,out attr))
            {
                if (attr.PropertyName != null)
                    property.PropertyName = ResolvePropertyName(attr.PropertyName);
                if (attr.Ignored != null)
                    property.Ignored = attr.Ignored.Value;
            }
        }
        return property;
    }
}

如果您愿意,也可以从CamelCasePropertyNamesContractResolver继承.

然后使用它像:

public class Foo
{
    public string SomeLengthyCSharpPropertyName { get; set; }

    public string DefaultNotIgnored { get; set; }

    [JsonIgnore]
    public string DefaultIgnored { get; set; }
}

public class TestClass
{
    public static void test()
    {
        var foo = new Foo { SomeLengthyCSharpPropertyName = "SomeLengthyCSharpPropertyName",DefaultIgnored = "DefaultIgnored",DefaultNotIgnored = "DefaultNotIgnored" };

        var resolver = new OverrideContractResolver(new Dictionary<MemberInfo,JsonPropertyOverride> { 
            { typeof(Foo).GetProperty("SomeLengthyCSharpPropertyName"),new JsonPropertyOverride { PropertyName = "c"  } },{ typeof(Foo).GetProperty("DefaultNotIgnored"),new JsonPropertyOverride { Ignored = true  } },{ typeof(Foo).GetProperty("DefaultIgnored"),new JsonPropertyOverride { Ignored = false  } },});
        var settings = new JsonSerializerSettings { ContractResolver = resolver };

        var json = JsonConvert.SerializeObject(foo,settings); // Outputs {"c":"SomeLengthyCSharpPropertyName","DefaultIgnored":"DefaultIgnored"}
        Debug.WriteLine(json);

        var expectedJson = @"{ ""c"": ""SomeLengthyCSharpPropertyName"",""DefaultIgnored"": ""DefaultIgnored"" }";
        var ok = JToken.deepequals(JToken.Parse(json),JToken.Parse(expectedJson));
        Debug.Assert(ok); // No assert

        var foo2 = JsonConvert.DeserializeObject<Foo>(json,settings);

        var ok2 = foo2.DefaultIgnored == foo.DefaultIgnored && foo2.someLengthyCSharpPropertyName == foo.someLengthyCSharpPropertyName;
        Debug.Assert(ok2); // No assert
    }
}

Caused by:org.hibernate.too.schema.spi.SchemaManagementException:Attempt to resolve foreign key m...

Caused by:org.hibernate.too.schema.spi.SchemaManagementException:Attempt to resolve foreign key m...

junit 报错

java.lang.ExceptionInInitializerError
at com.hibernate.many2many.Demo1.test02(Demo1.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:39)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:79)
at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:70)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key named [FKh9yp1nql5227xxcopuxqx2e7q]
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl$ForeignKeyBuilderImpl.build(InformationExtractorJdbcDatabaseMetaDataImpl.java:727)
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl$ForeignKeyBuilderImpl.build(InformationExtractorJdbcDatabaseMetaDataImpl.java:708)
at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getForeignKeys(InformationExtractorJdbcDatabaseMetaDataImpl.java:691)
at org.hibernate.tool.schema.extract.internal.TableInformationImpl.foreignKeys(TableInformationImpl.java:88)
at org.hibernate.tool.schema.extract.internal.TableInformationImpl.getForeignKey(TableInformationImpl.java:99)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.findMatchingForeignKey(SchemaMigratorImpl.java:530)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applyForeignKeys(SchemaMigratorImpl.java:506)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.performMigration(SchemaMigratorImpl.java:315)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:137)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:110)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:176)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:65)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:308)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:476)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:707)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:723)
at com.hibernate.until.HibernateUntil.<clinit>(HibernateUntil.java:12)
... 42 more

 

我使用 hibernate 的版本为:5.2.0

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.0.Final</version>
</dependency>

方言由:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

改为:

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

依然报错

查阅网页,看到网友说这是 hibernate 的 bug,换一个比 5.2.0 更高的版本就可以了

然后成功解决问题

 

报错的 hibernate 版本

 

 更改的版本

 

 

 更改版本,成功解决问题。

com.fasterxml.jackson.databind.jsonschema.JsonSchema的实例源码

com.fasterxml.jackson.databind.jsonschema.JsonSchema的实例源码

项目:QuizUpWinner    文件:ObjectArraySerializer.java   
public JsonNode getSchema(SerializerProvider paramSerializerProvider,Type paramType)
{
  ObjectNode localObjectNode = createSchemaNode("array",true);
  if (paramType != null)
  {
    JavaType localJavaType = paramSerializerProvider.constructType(paramType);
    if (localJavaType.isArrayType())
    {
      Class localClass = ((ArrayType)localJavaType).getContentType().getRawClass();
      if (localClass == Object.class)
      {
        localObjectNode.put("items",JsonSchema.getDefaultSchemaNode());
        return localObjectNode;
      }
      JsonSerializer localJsonSerializer = paramSerializerProvider.findValueSerializer(localClass,this._property);
      JsonNode localJsonNode;
      if ((localJsonSerializer instanceof SchemaAware))
        localJsonNode = ((SchemaAware)localJsonSerializer).getSchema(paramSerializerProvider,null);
      else
        localJsonNode = JsonSchema.getDefaultSchemaNode();
      localObjectNode.put("items",localJsonNode);
    }
  }
  return localObjectNode;
}
项目:QuizUpWinner    文件:EnumMapSerializer.java   
public JsonNode getSchema(SerializerProvider paramSerializerProvider,Type paramType)
{
  ObjectNode localObjectNode1 = createSchemaNode("object",true);
  if ((paramType instanceof ParameterizedType))
  {
    Type[] arrayOfType = ((ParameterizedType)paramType).getActualTypeArguments();
    if (arrayOfType.length == 2)
    {
      JavaType localJavaType1 = paramSerializerProvider.constructType(arrayOfType[0]);
      JavaType localJavaType2 = paramSerializerProvider.constructType(arrayOfType[1]);
      ObjectNode localObjectNode2 = JsonNodeFactory.instance.objectNode();
      for (Enum localEnum : (Enum[])localJavaType1.getRawClass().getEnumConstants())
      {
        JsonSerializer localJsonSerializer = paramSerializerProvider.findValueSerializer(localJavaType2.getRawClass(),this._property);
        JsonNode localJsonNode;
        if ((localJsonSerializer instanceof SchemaAware))
          localJsonNode = ((SchemaAware)localJsonSerializer).getSchema(paramSerializerProvider,null);
        else
          localJsonNode = JsonSchema.getDefaultSchemaNode();
        localObjectNode2.put(paramSerializerProvider.getConfig().getAnnotationIntrospector().findEnumValue(localEnum),localJsonNode);
      }
      localObjectNode1.put("properties",localObjectNode2);
    }
  }
  return localObjectNode1;
}
项目:joyplus-tv    文件:DefaultSerializerProvider.java   
/**
 * The method to be called by {@link ObjectMapper} and {@link ObjectWriter}
 * to generate <a href="http://json-schema.org/">JSON schema</a> for
 * given type.
 *
 * @param type The type for which to generate schema
 */
public JsonSchema generateJsonSchema(Class<?> type)
        throws JsonMappingException
    {
        if (type == null) {
            throw new IllegalArgumentException("A class must be provided");
        }
        /* no need for embedded type information for JSON schema generation (all
         * type information it needs is accessible via "untyped" serializer)
         */
        JsonSerializer<Object> ser = findValueSerializer(type,null);
        JsonNode schemaNode = (ser instanceof SchemaAware) ?
                ((SchemaAware) ser).getSchema(this,null) : 
                JsonSchema.getDefaultSchemaNode();
        if (!(schemaNode instanceof ObjectNode)) {
            throw new IllegalArgumentException("Class " + type.getName() +
                    " would not be serialized as a JSON object and therefore has no schema");
        }
        return new JsonSchema((ObjectNode) schemaNode);
    }
项目:joyplus-tv    文件:ObjectArraySerializer.java   
@Override
public JsonNode getSchema(SerializerProvider provider,Type typeHint)
    throws JsonMappingException
{
    ObjectNode o = createSchemaNode("array",true);
    if (typeHint != null) {
        JavaType javaType = provider.constructType(typeHint);
        if (javaType.isArrayType()) {
            Class<?> componentType = ((ArrayType) javaType).getContentType().getRawClass();
            // 15-Oct-2010,tatu: We can't serialize plain Object.class; but what should it produce here? Untyped?
            if (componentType == Object.class) {
                o.put("items",JsonSchema.getDefaultSchemaNode());
            } else {
                JsonSerializer<Object> ser = provider.findValueSerializer(componentType,_property);
                JsonNode schemaNode = (ser instanceof SchemaAware) ?
                        ((SchemaAware) ser).getSchema(provider,null) :
                        JsonSchema.getDefaultSchemaNode();
                o.put("items",schemaNode);
            }
        }
    }
    return o;
}
项目:joyplus-tv    文件:EnumMapSerializer.java   
@SuppressWarnings("unchecked")
@Override
public JsonNode getSchema(SerializerProvider provider,Type typeHint)
    throws JsonMappingException
{
    ObjectNode o = createSchemaNode("object",true);
    if (typeHint instanceof ParameterizedType) {
        Type[] typeArgs = ((ParameterizedType) typeHint).getActualTypeArguments();
        if (typeArgs.length == 2) {
            JavaType enumType = provider.constructType(typeArgs[0]);
            JavaType valueType = provider.constructType(typeArgs[1]);
            ObjectNode propsNode = JsonNodeFactory.instance.objectNode();
            Class<Enum<?>> enumClass = (Class<Enum<?>>) enumType.getRawClass();
            for (Enum<?> enumValue : enumClass.getEnumConstants()) {
                JsonSerializer<Object> ser = provider.findValueSerializer(valueType.getRawClass(),null) :
                        JsonSchema.getDefaultSchemaNode();
                propsNode.put(provider.getConfig().getAnnotationIntrospector().findEnumValue((Enum<?>)enumValue),schemaNode);
            }
            o.put("properties",propsNode);
        }
    }
    return o;
}
项目:joyplus-tv    文件:BeanPropertyWriter.java   
/**
 * Attempt to add the output of the given {@link BeanPropertyWriter} in the given {@link ObjectNode}.
 * Otherwise,add the default schema {@link JsonNode} in place of the writer's output
 * 
 * @param propertiesNode Node which the given property would exist within
 * @param provider Provider that can be used for accessing dynamic aspects of serialization
 *  processing
 *  
 *  {@link BeanPropertyFilter#depositSchemaProperty(BeanPropertyWriter,ObjectNode,SerializerProvider)}
 * 
 * @since 2.1
 */
public void depositSchemaProperty(ObjectNode propertiesNode,SerializerProvider provider)
    throws JsonMappingException
{
    JavaType propType = getSerializationType();
    // 03-Dec-2010,tatu: SchemaAware REALLY should use JavaType,but alas it doesn't...
    Type hint = (propType == null) ? getGenericPropertyType() : propType.getRawClass();
    JsonNode schemaNode;
    // Maybe it already has annotated/statically configured serializer?
    JsonSerializer<Object> ser = getSerializer();
    if (ser == null) { // nope
        Class<?> serType = getRawSerializationType();
        if (serType == null) {
            serType = getPropertyType();
        }
        ser = provider.findValueSerializer(serType,this);
    }
    boolean isOptional = !isrequired(provider.getAnnotationIntrospector());
    if (ser instanceof SchemaAware) {
        schemaNode =  ((SchemaAware) ser).getSchema(provider,hint,isOptional) ;
    } else {  
        schemaNode = JsonSchema.getDefaultSchemaNode(); 
    }
    propertiesNode.put(getName(),schemaNode);
}
项目:QuizUpWinner    文件:DefaultSerializerProvider.java   
public JsonSchema generateJsonSchema(Class<?> paramClass)
{
  if (paramClass == null)
    throw new IllegalArgumentException("A class must be provided");
  JsonSerializer localJsonSerializer = findValueSerializer(paramClass,null);
  JsonNode localJsonNode1;
  if ((localJsonSerializer instanceof SchemaAware))
    localJsonNode1 = ((SchemaAware)localJsonSerializer).getSchema(this,null);
  else
    localJsonNode1 = JsonSchema.getDefaultSchemaNode();
  JsonNode localJsonNode2 = localJsonNode1;
  if (!(localJsonNode1 instanceof ObjectNode))
    throw new IllegalArgumentException("Class " + paramClass.getName() + " would not be serialized as a JSON object and therefore has no schema");
  return new JsonSchema((ObjectNode)localJsonNode2);
}
项目:QuizUpWinner    文件:AsArraySerializerBase.java   
public JsonNode getSchema(SerializerProvider paramSerializerProvider,true);
  Object localObject = null;
  if (paramType != null)
  {
    JavaType localJavaType = paramSerializerProvider.constructType(paramType).getContentType();
    localObject = localJavaType;
    if ((localJavaType == null) && ((paramType instanceof ParameterizedType)))
    {
      Type[] arrayOfType = ((ParameterizedType)paramType).getActualTypeArguments();
      if (arrayOfType.length == 1)
        localObject = paramSerializerProvider.constructType(arrayOfType[0]);
    }
  }
  if ((localObject == null) && (this._elementType != null))
    localObject = this._elementType;
  if (localObject != null)
  {
    Class localClass = ((JavaType)localObject).getRawClass();
    JsonNode localJsonNode = null;
    if (localClass != Object.class)
    {
      JsonSerializer localJsonSerializer = paramSerializerProvider.findValueSerializer((JavaType)localObject,this._property);
      boolean bool = localJsonSerializer instanceof SchemaAware;
      localJsonNode = null;
      if (bool)
        localJsonNode = ((SchemaAware)localJsonSerializer).getSchema(paramSerializerProvider,null);
    }
    if (localJsonNode == null)
      localJsonNode = JsonSchema.getDefaultSchemaNode();
    localObjectNode.put("items",localJsonNode);
  }
  return localObjectNode;
}
项目:QuizUpWinner    文件:BeanPropertyWriter.java   
public void depositSchemaProperty(ObjectNode paramObjectNode,SerializerProvider paramSerializerProvider)
{
  JavaType localJavaType = getSerializationType();
  Object localObject;
  if (localJavaType == null)
    localObject = getGenericPropertyType();
  else
    localObject = localJavaType.getRawClass();
  JsonSerializer localJsonSerializer1 = getSerializer();
  JsonSerializer localJsonSerializer2 = localJsonSerializer1;
  if (localJsonSerializer1 == null)
  {
    Class localClass1 = getRawSerializationType();
    Class localClass2 = localClass1;
    if (localClass1 == null)
      localClass2 = getPropertyType();
    localJsonSerializer2 = paramSerializerProvider.findValueSerializer(localClass2,this);
  }
  boolean bool;
  if (!isrequired())
    bool = true;
  else
    bool = false;
  JsonNode localJsonNode;
  if ((localJsonSerializer2 instanceof SchemaAware))
    localJsonNode = ((SchemaAware)localJsonSerializer2).getSchema(paramSerializerProvider,(Type)localObject,bool);
  else
    localJsonNode = JsonSchema.getDefaultSchemaNode();
  paramObjectNode.put(getName(),localJsonNode);
}
项目:geocoder    文件:GeocoderTest.java   
@Test
public void exampleCode() throws Exception {
    ObjectMapper om = new ObjectMapper();
    om.configure(SerializationFeature.INDENT_OUTPUT,true);

    Geocoder geocoder = new Geocoder();

    System.out.println(om.writeValueAsstring(geocoder.resolve("Rancho Cordova,US")));
    System.out.println(om.writeValueAsstring(geocoder.resolve("Москва является удивительным")));

    JsonSchema schema = om.generateJsonSchema(Location.class);
    System.out.println(schema.toString());
}
项目:joyplus-tv    文件:JsonValueSerializer.java   
@Override
public JsonNode getSchema(SerializerProvider provider,Type typeHint)
    throws JsonMappingException
{
    return (_valueSerializer instanceof SchemaAware) ?
            ((SchemaAware) _valueSerializer).getSchema(provider,null) :
            JsonSchema.getDefaultSchemaNode();
}
项目:eMonocot    文件:JsonConversionTest.java   
@Test
public void testWriteSchema() throws Exception {
    JsonSchema jsonSchema = objectMapper.generateJsonSchema(Page.class);

}
项目:QuizUpWinner    文件:JsonValueSerializer.java   
public JsonNode getSchema(SerializerProvider paramSerializerProvider,Type paramType)
{
  if ((this._valueSerializer instanceof SchemaAware))
    return ((SchemaAware)this._valueSerializer).getSchema(paramSerializerProvider,null);
  return JsonSchema.getDefaultSchemaNode();
}
项目:joyplus-tv    文件:AsArraySerializerBase.java   
@Override
public JsonNode getSchema(SerializerProvider provider,Type typeHint)
    throws JsonMappingException
{
    /* 15-Jan-2010,tatu: This should probably be rewritten,given that
     *    more information about content type is actually being explicitly
     *    passed. So there should be less need to try to re-process that
     *    information.
     */
    ObjectNode o = createSchemaNode("array",true);
    JavaType contentType = null;
    if (typeHint != null) {
        JavaType javaType = provider.constructType(typeHint);
        contentType = javaType.getContentType();
        if (contentType == null) { // Could still be parametrized (Iterators)
            if (typeHint instanceof ParameterizedType) {
                Type[] typeArgs = ((ParameterizedType) typeHint).getActualTypeArguments();
                if (typeArgs.length == 1) {
                    contentType = provider.constructType(typeArgs[0]);
                }
            }
        }
    }
    if (contentType == null && _elementType != null) {
        contentType = _elementType;
    }
    if (contentType != null) {
        JsonNode schemaNode = null;
        // 15-Oct-2010,tatu: We can't serialize plain Object.class; but what should it produce here? Untyped?
        if (contentType.getRawClass() != Object.class) {
            JsonSerializer<Object> ser = provider.findValueSerializer(contentType,_property);
            if (ser instanceof SchemaAware) {
                schemaNode = ((SchemaAware) ser).getSchema(provider,null);
            }
        }
        if (schemaNode == null) {
            schemaNode = JsonSchema.getDefaultSchemaNode();
        }
        o.put("items",schemaNode);
    }
    return o;
}
项目:joyplus-tv    文件:ObjectMapper.java   
/**
 * Generate <a href="http://json-schema.org/">Json-schema</a>
 * instance for specified class.
 *
 * @param t The class to generate schema for
 * @return Constructed JSON schema.
 */
public JsonSchema generateJsonSchema(Class<?> t) throws JsonMappingException {
    return _serializerProvider(getSerializationConfig()).generateJsonSchema(t);
}

今天关于根据使用 OpenAPI 和 JSON-Schema 的查询参数创建所需的属性根据code获取openid的介绍到此结束,谢谢您的阅读,有关.net – 在F#Web Api项目中使用可选的查询参数、c# – 如何使用Json.Net将JsonProperty属性分配给DLL内的类的属性?、Caused by:org.hibernate.too.schema.spi.SchemaManagementException:Attempt to resolve foreign key m...、com.fasterxml.jackson.databind.jsonschema.JsonSchema的实例源码等更多相关知识的信息可以在本站进行查询。

如果您对为什么我的 AWS Lambda 节点 JS 应用程序无法访问我的 MongoDB Atlas 集群?aws lambda nodejs感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解为什么我的 AWS Lambda 节点 JS 应用程序无法访问我的 MongoDB Atlas 集群?的各种细节,并对aws lambda nodejs进行深入的分析,此外还有关于atlas mongodb 无服务器和 aws lambda 连接问题、AWS Kinesis Lambda DynamoDB我正在尝试使用以下代码通过 Lambda 函数从 Kinesis 摄取数据 DynamoDB、AWS Lambda Java:Lambda无法解压缩文件、AWS Lambda 上的 Spring Boot 应用程序 - 使用 Docker 容器映像测量 Lambda 函数的冷启动和热启动部分的实用技巧。

本文目录一览:

为什么我的 AWS Lambda 节点 JS 应用程序无法访问我的 MongoDB Atlas 集群?(aws lambda nodejs)

为什么我的 AWS Lambda 节点 JS 应用程序无法访问我的 MongoDB Atlas 集群?(aws lambda nodejs)

如果您使用的是 iam 类型的 mongodb 用户,则连接字符串中不需要用户名 + 密码。

const uri = "mongodb+srv://cluster0.tfws6.mongodb.net/DBNAME?authSource=$external&authMechanism=MONGODB-AWS&retryWrites=true&w=majority"

当您调用连接到 mongodb 集群的 lambda 时,它将使用的 iam 角色将是 lambda 的执行角色

"arn:aws:iam::ACCOUNT_ID:role/SLS_SERVICE_NAME-ENVIRONMENT-AWS_REGION-lambdaRole"
"arn:aws:iam::123456789012:role/awesome-service-dev-us-east-1-lambdaRole"

检查 sls 框架的默认 iam 部分: https://www.serverless.com/framework/docs/providers/aws/guide/iam/#the-default-iam-role

atlas mongodb 无服务器和 aws lambda 连接问题

atlas mongodb 无服务器和 aws lambda 连接问题

如何解决atlas mongodb 无服务器和 aws lambda 连接问题?

我在 atlas (https://www.mongodb.com/serverless) 上有一个无服务器数据库。我用的是ATLAS推荐的连接字符串:

mongodb+srv://<username>:<password>@xyz.esxbh.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

但是,一旦我尝试创建记录,就会收到以下错误:

{"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"MongoParseError: Text record must only set `authSource` or `replicaset`","reason":{"errorType":"MongoParseError","errorMessage":"Text record must only set `authSource` or `replicaset`","name":"MongoParseError","stack":["MongoParseError: Text record must only set `authSource` or `replicaset`","

我认为连接字符串不正确,另一方面,服务器的 dns 条目确实回复了 2 个服务器。

我尝试删除 ''+srv'' 部分,但是在那种情况下,来自 mongoose 的保存函数会永远挂起,使 lambda 函数超时。

我在谷歌上找不到任何类似的问题。

来自DNS服务器的TXT条目记录显示:

"TXT    "authSource=admin&loadBalanced=true"

您如何配置无服务器数据库以使其正常工作?

产生错误的代码依赖于mongoose,如下:

        try {
          const customer = new Customer(cust);
          console.log(''new cusotmer created'');
          const returnedCustomer = await customer.save();
          console.log(returnedCustomer);
          return serverResponse(200,returnedCustomer);
        } catch(err){
          console.log(err);
          return errorHandler(500,err)
        }

似乎与数据库的连接没问题:

try {
    await dbTools.connectMongoose();
    console.log(''*** connected ***'');

} catch(err){
    console.log(''error when connecting'');
    return errorHandler(500,err);
}

现在,看看源代码,没什么太复杂的:

if (Object.keys(record).some(key => key !== ''authSource'' && key !== ''replicaset'')) {
  return callback(
    new MongoParseError(''Text record must only set `authSource` or `replicaset`'')
  );
}

我现在真的很难理解出了什么问题,因为 authSource 似乎存在于 TXT 记录中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

AWS Kinesis Lambda DynamoDB我正在尝试使用以下代码通过 Lambda 函数从 Kinesis 摄取数据 DynamoDB

AWS Kinesis Lambda DynamoDB我正在尝试使用以下代码通过 Lambda 函数从 Kinesis 摄取数据 DynamoDB

如何解决AWS Kinesis Lambda DynamoDB我正在尝试使用以下代码通过 Lambda 函数从 Kinesis 摄取数据 DynamoDB?

AWS Kinesis Lambda DynamoDB。我正在尝试使用以下代码通过 Lambda 函数从 Kinesis 流中将数据摄取到 DynamoDB。 但是数据没有在 DynamoDB 中被摄取,执行后在 lambda 函数中没有得到异常。 Lambda 函数已在 Kinesis Stream 上触发。

任何人都可以提出建议。

    import boto3
    import datetime
    import base64
    import json
    
    def lambda_handler(event,context):
        try:
            dynamo_db = boto3.resource(''dynamodb'')
            table = dynamo_db.Table(''table'')
            for record in event["Records"]:
                encoded = record["kinesis"]["data"]
                decoded = json.loads(base64.b64decode(encoded).decode("utf-8"))
                for i in decoded:
                    record = i["demo-stream"]
                    for j in record:
                        data = {
                            ''timestamp'': ["timestamp"],''name'': ["name"],''age'': ["age"]
                        }
                        # table.put_item(Item=data)  
                        with table.batch_writer() as batch_writer:
                            batch_writer.put_item(Item=data)
        except Exception as e: 
            print(str(e))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

AWS Lambda Java:Lambda无法解压缩文件

AWS Lambda Java:Lambda无法解压缩文件

我正在尝试将Java与AWS Lambda结合使用。我创建了一个具有所有依赖项的jar文件(使用maven-assembly-
plugin)。上传后,我无法调用lambda。我收到错误消息Calling the Invoke API failed with message:Lambda was not able to unzip the file。jar文件为11 MB。我可以用java -jar

答案1

小编典典

maven-assemply-plugin需要被告知输出a zip而不是a jar。(我什至不知道有什么区别!)

将此添加到其配置中:

<plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-assembly-plugin</artifactId>     ...     <configuration>         ...         <formats>            <format>zip</format>         </formats>     </configuration></plugin>

AWS Lambda 上的 Spring Boot 应用程序 - 使用 Docker 容器映像测量 Lambda 函数的冷启动和热启动部分

AWS Lambda 上的 Spring Boot 应用程序 - 使用 Docker 容器映像测量 Lambda 函数的冷启动和热启动部分

aws lambda 上的 spring boot 应用程序 - 使用 docker 容器映像测量 lambda 函数的冷启动和热启动部分

介绍

在如何使用 Docker 容器镜像和 Java (21) 运行时开发和部署 Lambda 函数一文中,我逐步介绍了如何使用 Docker 容器镜像和 Java 21 运行时开发和部署 Lambda 函数,而不使用任何框架。由于 Docker 容器镜像是通用格式,因此我们可以简单地采用使用 Spring Cloud Function AWS 开发应用程序一文中介绍的 Spring Cloud Function 应用程序,并使用相同的步骤进行部署。因此,我在此处发布了该应用程序的重新设计版本(添加 Dockerfle 并更改 SAM 模板)以将其部署为 Docker 映像。对于所有 Lambda 函数,我们使用 JAVA_TOOL_OPTIONS:“-XX:+TieredCompilation -XX:TieredStopAtLevel=1”(这在冷启动时间和热启动时间之间进行了合理的权衡)并为其提供 1024 MB 内存。使用 AWS Serverless Java Container 也可以实现同样的效果。

使用 Spring Cloud Function 和 Docker 容器镜像作为部署格式测量 Lambda 函数的冷启动和热启动

下面的实验结果基于使用 Lambda 函数 GetProductByIdWithSpringBootJava21DockerImage 在 1 小时内重现超过 100 次冷启动和大约 100.000 次热启动,该函数映射到负责检索产品(存储)的 Java Lambda 处理程序类在 DynamoDB 中)通过其 id。为此,我使用了负载测试工具,但是您可以使用任何您想要的工具,例如 Serverless-artillery 或 Postman。

冷 (c) 和暖 (m) 开始时间(以毫秒为单位):

c p50 c p75 c p90 c p99 c p99.9 c max w p50 w p75 w p90 w p99 w p99.9 w max
4558.68 4622.92 4749.37 5002.74 7183.64 7185.5 7.16 7.94 9.09 20.99 52.47 1313.08

结论

在本文中,我们使用 AWS Lambda 基础 Docker 容器映像的方法测量了 Lambda 函数的冷启动和热启动。与使用 Docker 容器映像和 Java (21) 运行时而不使用 Spring (Boot) 框架的 Lambda 函数进行测量相比,我们经历了更高的冷启动时间和略高的热启动时间,而且与使用 Spring Boot 的其他方法测量冷启动时间相比:本系列之前的文章中介绍了 AWS Serverless Java Container、AWS Lambda Adapter 和 Spring Cloud Functions。

AWS Lambda SnapStart 可显着缩短冷启动时间,目前仅适用于 Java Corretto 托管运行时(11、17 和 21),不适用于 Docker 容器映像。您可以探索 jlink 工具,将一组模块及其依赖项组装和优化为更小的自定义运行时映像和类数据共享 (CDS),但这有助于减少 Java 编程语言应用程序(特别是较小的应用程序)的启动时间,以及减少占地面积。使用 Docker 映像作为 Java 部署工件的优点是能够使用最新的 Java 运行时,例如将于 9 月发布的 Java 23。

以上就是AWS Lambda 上的 Spring Boot 应用程序 - 使用 Docker 容器映像测量 Lambda 函数的冷启动和热启动部分的详细内容,更多请关注php中文网其它相关文章!

今天关于为什么我的 AWS Lambda 节点 JS 应用程序无法访问我的 MongoDB Atlas 集群?aws lambda nodejs的分享就到这里,希望大家有所收获,若想了解更多关于atlas mongodb 无服务器和 aws lambda 连接问题、AWS Kinesis Lambda DynamoDB我正在尝试使用以下代码通过 Lambda 函数从 Kinesis 摄取数据 DynamoDB、AWS Lambda Java:Lambda无法解压缩文件、AWS Lambda 上的 Spring Boot 应用程序 - 使用 Docker 容器映像测量 Lambda 函数的冷启动和热启动部分等相关知识,可以在本站进行查询。

在本文中,我们将给您介绍关于是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能的详细内容,并且为您解答react点击按钮跳转指定位置的相关问题,此外,我们还将为您提供关于AdminLTE中我的菜单太长了,能不能实现点击菜单之后出现最小化菜单页面的悬停事件那样子的样式。、delphi – 菜单项是否可以接收OnClick事件,即使它没有启用?、iview-admin中菜单栏子菜单点击之后再收起,再点击其他的子菜单依旧会展开刚刚收起的子菜单、js之展开收缩菜单,用到window.onload ,onclick,的知识。

本文目录一览:

是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能(react点击按钮跳转指定位置)

是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能(react点击按钮跳转指定位置)

如何解决是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能?

目前我正在使用 AdminLTE 模板处理我的仪表板侧边栏菜单。现在 AdminLTE 的默认功能,当悬停光标指向父菜单时,下拉菜单显示在侧边栏的右侧。这里的大问题是,是否可以使用 React JS 将该函数更改为 onclick 函数?确切地说,如果用户点击而不是悬停,下拉菜单将显示。

我做过什么:

  1. 我隐藏侧边栏菜单:悬停

    .sidebar-menu:hover,.sidebar-menu:focus { 溢出:隐藏!重要; }

  2. 我为 onClick 函数创建了新的处理程序

    onClick={() => this.OpenProfilesDropdown()}

电流输出:

Current Output of Hover

侧边栏 JSX:

    <ul className="sidebar-menu" data-widget="tree" style={{ marginTop: "3px",height: "750px",fontFamily: "Helvetica Neue" }}>
            
            
    <li className="treeview active" style={{ top: "60px" }}>
        <a
        href="/#"
        onClick={() => this.OpenProfilesDropdown()}
        style={({ fontSize: "18px" },leftActiveClass,activeClass,this.isInArray(pageActive,["user-list","access-right"])
            ? usercActive
            : usercInActive)
        }
        className={
            this.isInArray(pageActive,"access-right"])
            ? "activeUrl"
            : null
        }
        >
        <i>
            <img src={users}

            style={
                this.isInArray(pageActive,"access-right"])
                ? { marginLeft: "2px",marginTop: "0px",width: "25px" }
                : { marginLeft: "5px",width: "25px" }
            } />
        </i>
        <span className="sidebar-text-parent" style={this.isInArray(pageActive,"access-right"])
            ? { marginLeft: "17px" } : { marginLeft: "17px",marginTop: "0px" }} >
            <strong>Users</strong>
        </span>
        </a>
        <ul className="treeview-menu" style={{ marginLeft: "20px",marginTop: "-4px" }}>
        <li>
            <NavLink activeClassName="text-bold-maroon" to="/user-list">
            <span
                className={"sidebar-text-child  m-top-2"}
                style={pageActive === "user-list" ? {marginLeft:''26px''} : {marginLeft:''26px''}}
            >User List</span>
            </NavLink>
        </li>
        <li>
            <NavLink
            activeClassName="text-bold-maroon"
            to="/access-right"
            >
            <span
                className={"sidebar-text-child  m-top-2"}
                style={pageActive === "access-right" ? {marginLeft:''26px''} : {marginLeft:''26px''}}
            >Access Right</span>
            </NavLink>
        </li>
        </ul>
    </li>
</ul>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

AdminLTE中我的菜单太长了,能不能实现点击菜单之后出现最小化菜单页面的悬停事件那样子的样式。

AdminLTE中我的菜单太长了,能不能实现点击菜单之后出现最小化菜单页面的悬停事件那样子的样式。

AdminLTE中我的菜单太长了,能不能实现点击菜单之后出现最小化菜单页面的悬停事件那样子的样式。这样更加好选择我地菜单分了六级,如果不这样操作的话很麻烦,而且主菜单也有很多默认打开太难看了,希望老司机带带我

delphi – 菜单项是否可以接收OnClick事件,即使它没有启用?

delphi – 菜单项是否可以接收OnClick事件,即使它没有启用?

我正在尝试通过Ctrl单击它们来启用管理员在我的应用程序主菜单中启用/禁用菜单项.为此,我在我的主窗体中注入了一个自定义版本的TMenuItem类,并覆盖了Click虚拟方法,如下所示:

uses
  Forms,Menus;

type
  TMenuItem = class(Menus.TMenuItem)
  public
    ControlActivationState: Boolean;
    procedure Click; override;
  end;

  TMyMainForm = class(TForm)

...

procedure TMenuItem.Click;
begin
  if ControlActivationState and IsKeypressed(VK_CONTROL) then
    Self.Enabled := not Self.Enabled
  else
    inherited;
end;

它可以工作,但仅适用于顶级菜单.
为什么顶级菜单项会收到OnClick事件,即使它们被禁用而其他菜单项也没有?
有没有办法让子菜单项也接收这些事件?

解决方法

顶级OnClick事件由收到WM_INITMENUPOPUP消息触发.即使禁用顶级项目,也会发送该消息.我不确定为什么会在那种情况下发送,但确实如此.对于有孩子的子项也是如此.

但是,对于没有子项的子项,OnClick由WM_COMMAND消息触发.但是,如果禁用菜单项,系统甚至不会发送消息.

你试图做的事情不容易做到.我能看到你这么做的唯一方法是处理原始的鼠标和键盘事件.就个人而言,我不打算这样做.

iview-admin中菜单栏子菜单点击之后再收起,再点击其他的子菜单依旧会展开刚刚收起的子菜单

iview-admin中菜单栏子菜单点击之后再收起,再点击其他的子菜单依旧会展开刚刚收起的子菜单

@龙影 你好,想跟你请教个问题:大佬,问一下iview-admin里左边菜单点击过的子菜单,收起,再点击其他子菜单,刚刚的子菜单也会展开,这个bug应该怎么改呢

js之展开收缩菜单,用到window.onload ,onclick,

js之展开收缩菜单,用到window.onload ,onclick,

 目标效果:点击标签1,如果列表标签的style的display是block,改成none,否则改成block,来达到展开收缩菜单效果

一.准备阶段

html文件

Meta Title Box" 标签1 display: block;" <手写 <拼音

运行后页面效果

 二.:点击标签1隐藏列表

方法1

HTML代码

<Meta charset="UTF-8"> Title
Box">

标签1

    display: block;">

效果从上图到下图

方法2

<Meta charset="UTF-8"> Title
Box">

标签1

    display: block;">

方法3

<Meta charset="UTF-8"> Title
Box">

标签1

    display: block;">

方法4

<Meta charset="UTF-8"> Title
Box">

标签1

    display: block;">

在方法4基础上加上if判断就可以实现页面展开收缩菜单功能

代码如下

<Meta charset="UTF-8"> Title
Box">

标签1

    display: block;">

效果如下

今天关于是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能react点击按钮跳转指定位置的分享就到这里,希望大家有所收获,若想了解更多关于AdminLTE中我的菜单太长了,能不能实现点击菜单之后出现最小化菜单页面的悬停事件那样子的样式。、delphi – 菜单项是否可以接收OnClick事件,即使它没有启用?、iview-admin中菜单栏子菜单点击之后再收起,再点击其他的子菜单依旧会展开刚刚收起的子菜单、js之展开收缩菜单,用到window.onload ,onclick,等相关知识,可以在本站进行查询。

本文标签: